github.com/afumu/libc@v0.0.6/musl/src/thread/sem_init.c (about) 1 #include <semaphore.h> 2 #include <limits.h> 3 #include <errno.h> 4 5 int sem_init(sem_t *sem, int pshared, unsigned value) 6 { 7 if (value > SEM_VALUE_MAX) { 8 errno = EINVAL; 9 return -1; 10 } 11 sem->__val[0] = value; 12 sem->__val[1] = 0; 13 sem->__val[2] = pshared ? 0 : 128; 14 return 0; 15 }