1*c9945492SAndroid Build Coastguard Worker #include <semaphore.h> 2*c9945492SAndroid Build Coastguard Worker #include <limits.h> 3*c9945492SAndroid Build Coastguard Worker #include <errno.h> 4*c9945492SAndroid Build Coastguard Worker sem_init(sem_t * sem,int pshared,unsigned value)5*c9945492SAndroid Build Coastguard Workerint sem_init(sem_t *sem, int pshared, unsigned value) 6*c9945492SAndroid Build Coastguard Worker { 7*c9945492SAndroid Build Coastguard Worker if (value > SEM_VALUE_MAX) { 8*c9945492SAndroid Build Coastguard Worker errno = EINVAL; 9*c9945492SAndroid Build Coastguard Worker return -1; 10*c9945492SAndroid Build Coastguard Worker } 11*c9945492SAndroid Build Coastguard Worker sem->__val[0] = value; 12*c9945492SAndroid Build Coastguard Worker sem->__val[1] = 0; 13*c9945492SAndroid Build Coastguard Worker sem->__val[2] = pshared ? 0 : 128; 14*c9945492SAndroid Build Coastguard Worker return 0; 15*c9945492SAndroid Build Coastguard Worker } 16