147ca7595SAxel Dörfler/*
247ca7595SAxel Dörfler * Copyright 2008, Haiku Inc. All rights reserved.
347ca7595SAxel Dörfler * Distributed under the terms of the MIT License.
447ca7595SAxel Dörfler */
547ca7595SAxel Dörfler#ifndef KERNEL_XSI_SEMAPHORE_H
647ca7595SAxel Dörfler#define KERNEL_XSI_SEMAPHORE_H
747ca7595SAxel Dörfler
847ca7595SAxel Dörfler#include <sys/sem.h>
947ca7595SAxel Dörfler#include <sys/cdefs.h>
1047ca7595SAxel Dörfler
1147ca7595SAxel Dörfler#include <OS.h>
1247ca7595SAxel Dörfler
1347ca7595SAxel Dörfler#include <kernel.h>
1451daeb71SSalvatore Benedetto#include <posix/xsi_semaphore_defs.h>
1547ca7595SAxel Dörfler
1647ca7595SAxel Dörfler
174535495dSIngo Weinholdnamespace BKernel {
184535495dSIngo Weinhold	struct Team;
194535495dSIngo Weinhold}
204535495dSIngo Weinhold
214535495dSIngo Weinholdusing BKernel::Team;
224535495dSIngo Weinhold
234535495dSIngo Weinhold
2447ca7595SAxel Dörfler__BEGIN_DECLS
2547ca7595SAxel Dörfler
26f273b13dSSalvatore Benedettoextern void xsi_sem_init();
274535495dSIngo Weinholdextern void xsi_sem_undo(Team *team);
2847ca7595SAxel Dörfler
2947ca7595SAxel Dörfler/* user calls */
3047ca7595SAxel Dörflerint _user_xsi_semget(key_t key, int numberOfSemaphores, int flags);
3147ca7595SAxel Dörflerint _user_xsi_semctl(int semaphoreID, int semaphoreNumber, int command,
3247ca7595SAxel Dörfler	union semun* args);
3347ca7595SAxel Dörflerstatus_t _user_xsi_semop(int semaphoreID, struct sembuf *semOps,
3447ca7595SAxel Dörfler	size_t numSemOps);
3547ca7595SAxel Dörfler
3647ca7595SAxel Dörfler__END_DECLS
3747ca7595SAxel Dörfler
3847ca7595SAxel Dörfler#endif	/* KERNEL_XSI_SEMAPHORE_H */
39