6ae7f6879f
Ingo suggestions: instead of having one global sem_undo list, we now have two local list, one per semaphore set and one per team which is held in its xsi_sem_context structure, along with a mutex. A mutex has also been added to the semaphore set class in order to protect the local list, but also in order to (hopefully) improve concurrency. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26993 a95241bf-73f2-0310-859d-f6bbb57e9c96
32 lines
696 B
C
32 lines
696 B
C
/*
|
|
* Copyright 2008, Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef KERNEL_XSI_SEMAPHORE_H
|
|
#define KERNEL_XSI_SEMAPHORE_H
|
|
|
|
#include <sys/sem.h>
|
|
#include <sys/cdefs.h>
|
|
|
|
#include <OS.h>
|
|
|
|
#include <kernel.h>
|
|
#include <posix/xsi_semaphore_defs.h>
|
|
|
|
|
|
__BEGIN_DECLS
|
|
|
|
extern void xsi_ipc_init();
|
|
extern void xsi_sem_undo(struct team *team);
|
|
|
|
/* user calls */
|
|
int _user_xsi_semget(key_t key, int numberOfSemaphores, int flags);
|
|
int _user_xsi_semctl(int semaphoreID, int semaphoreNumber, int command,
|
|
union semun* args);
|
|
status_t _user_xsi_semop(int semaphoreID, struct sembuf *semOps,
|
|
size_t numSemOps);
|
|
|
|
__END_DECLS
|
|
|
|
#endif /* KERNEL_XSI_SEMAPHORE_H */
|