#include <semaphore.h>
#include <errno.h>
+#include <hurd.h>
#include <pt-internal.h>
int
{
#ifdef SEM_VALUE_MAX
if (value > SEM_VALUE_MAX)
- {
- errno = EINVAL;
- return -1;
- }
+ return __hurd_fail (EINVAL);
#endif
struct new_sem *isem = (struct new_sem *) sem;
#include <assert.h>
#include <hurdlock.h>
+#include <hurd.h>
#include <pt-internal.h>
do
{
if ((d & SEM_VALUE_MASK) == SEM_VALUE_MAX)
- {
- errno = EOVERFLOW;
- return -1;
- }
+ return __hurd_fail (EOVERFLOW);
}
while (!atomic_compare_exchange_weak_release (&isem->data, &d, d + 1));
do
{
if ((v >> SEM_VALUE_SHIFT) == SEM_VALUE_MAX)
- {
- errno = EOVERFLOW;
- return -1;
- }
+ return __hurd_fail (EOVERFLOW);
}
while (!atomic_compare_exchange_weak_release
(&isem->value, &v, v + (1 << SEM_VALUE_SHIFT)));
#include <semaphore.h>
#include <errno.h>
+#include <hurd.h>
#include <pt-internal.h>
int
if (__sem_waitfast (isem, 1) == 0)
return 0;
- errno = EAGAIN;
- return -1;
+ return __hurd_fail (EAGAIN);
}
weak_alias (__sem_trywait, sem_trywait);