Beispiel #1
0
/**
 * Create and initialize a semaphore, returning its ID.
 * @param count  resources available.
 * @return new semaphore ID on success, SYSERR on failure
 */
semaphore semcreate(int count)
{
    register semaphore sem;
    irqmask im;

    im = disable();             /* disable interrupts    */
    sem = semalloc();           /* request new semaphore */
    if (sem != SYSERR && count >= 0)    /* safety check          */
    {
        semtab[sem].count = count;      /* initialize count      */
        restore(im);            /* restore interrupts    */
        return sem;             /* return semaphore id   */
    }

    restore(im);
    return SYSERR;
}
Beispiel #2
0
int mutalloc(key_t key){
	return semalloc(key, 1);
}