root/src/add-ons/kernel/file_systems/userlandfs/server/beos/lock.cpp

#include "lock.h"

int
beos_new_lock(beos_lock *l, const char *name)
{
        if (!l)
                return B_BAD_VALUE;

        l->s = create_sem(0, name);
        if (l->s < 0)
                return l->s;

        l->c = 1;
        return B_OK;
}

int
beos_free_lock(beos_lock *l)
{
        if (!l)
                return B_BAD_VALUE;

        delete_sem(l->s);
        return 0;
}

int
beos_new_mlock(beos_mlock *l, long c, const char *name)
{
        if (!l)
                return B_BAD_VALUE;

        l->s = create_sem(c, name);
        if (l->s < 0)
                return l->s;

        return B_OK;
}

int
beos_free_mlock(beos_mlock *l)
{
        if (!l)
                return B_BAD_VALUE;

        delete_sem(l->s);
        return 0;
}