opuntiaOS - an operating system targeting x86 and ARMv7
at master 14 lines 445 B view raw
1#include <pthread.h> 2#include <sys/mman.h> 3#include <sysdep.h> 4 5int pthread_create(void* func) 6{ 7 uint32_t start = (uint32_t)mmap(NULL, 4096, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_STACK | MAP_PRIVATE, 0, 0); 8 thread_create_params_t params; 9 params.stack_start = start; 10 params.stack_size = 4096; 11 params.entry_point = (uint32_t)func; 12 int res = DO_SYSCALL_1(SYS_PTHREAD_CREATE, &params); 13 RETURN_WITH_ERRNO(res, 0, res); 14}