1#ifndef __VSF_LINUX_SYS_SEM_H__
2#define __VSF_LINUX_SYS_SEM_H__
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
19#define SEM_UNDO (1 << 0)
22#define GETPID (F_USER + 0)
23#define GETVAL (F_USER + 1)
24#define GETALL (F_USER + 2)
25#define GETNCNT (F_USER + 3)
26#define GETZCNT (F_USER + 4)
27#define SETVAL (F_USER + 5)
28#define SETALL (F_USER + 6)
40#if VSF_LINUX_CFG_WRAPPER == ENABLED
41#define semget VSF_LINUX_WRAPPER(semget)
42#define semctl VSF_LINUX_WRAPPER(semctl)
43#define semop VSF_LINUX_WRAPPER(semop)
44#define semtimedop VSF_LINUX_WRAPPER(semtimedop)
47#if VSF_LINUX_APPLET_USE_SYS_SEM == ENABLED
57# ifndef __VSF_APPLET__
62#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_SEM_LIB__))\
63 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_SEM == ENABLED
65#ifndef VSF_LINUX_APPLET_SYS_SEM_VPLT
66# if VSF_LINUX_USE_APPLET == ENABLED
67# define VSF_LINUX_APPLET_SYS_SEM_VPLT \
68 ((vsf_linux_sys_sem_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_sem_vplt))
70# define VSF_LINUX_APPLET_SYS_SEM_VPLT \
71 ((vsf_linux_sys_sem_vplt_t *)vsf_vplt((void *)0))
75#define VSF_LINUX_APPLET_SYS_SEM_ENTRY(__NAME) \
76 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_SEM_VPLT, __NAME)
77#define VSF_LINUX_APPLET_SYS_SEM_IMP(...) \
78 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_SEM_VPLT, __VA_ARGS__)
80VSF_LINUX_APPLET_SYS_SEM_IMP(
__semctl_va,
int,
int semid,
int semnum,
int cmd, va_list ap) {
82 return VSF_LINUX_APPLET_SYS_SEM_ENTRY(
__semctl_va)(semid, semnum, cmd, ap);
84VSF_LINUX_APPLET_SYS_SEM_IMP(
semget,
int,
key_t key,
int nsems,
int semflg) {
86 return VSF_LINUX_APPLET_SYS_SEM_ENTRY(
semget)(key, nsems, semflg);
88VSF_LINUX_APPLET_SYS_SEM_IMP(
semop,
int,
int semid,
struct sembuf *sops,
size_t nsops) {
90 return VSF_LINUX_APPLET_SYS_SEM_ENTRY(
semop)(semid, sops, nsops);
108int semctl(
int semid,
int semnum,
int cmd, ...);
110int semop(
int semid,
struct sembuf *sops,
size_t nsops);
__le16 timeout
Definition ieee80211.h:94
int key_t
Definition types.h:84
#define semget
Definition sem.h:41
#define semop
Definition sem.h:43
#define semtimedop
Definition sem.h:44
#define semctl
Definition sem.h:42
__VSF_VPLT_DECORATOR__ vsf_linux_sys_sem_vplt_t vsf_linux_sys_sem_vplt
Definition vsf_linux.c:4868
short sem_flg
Definition sem.h:37
unsigned short sem_num
Definition sem.h:35
short sem_op
Definition sem.h:36
struct ipc_perm sem_perm
Definition sem.h:31
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(semop)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(semtimedop)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__semctl_va)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(semget)
vsf_vplt_info_t info
Definition sem.h:49
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(semctl)
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
int __semctl_va(int semid, int semnum, int cmd, va_list ap)
Definition vsf_linux.c:3109
#define VSF_APPLET_VPLT_FUNC_DECORATOR(__NAME)
Definition vsf_linux_applet_lib.c:1