blob: c502a1bb22bd7c54811962b5624fcfe539c7a7f7 [file] [log] [blame]
// Copyright (C) 2017 The Android Open Source Project
// SPDX-License-Identifier: BSD-2-Clause
#if defined(__BIONIC__)
#include <sys/sem.h>
#include "header_checks.h"
static void sys_sem_h() {
MACRO(SEM_UNDO);
MACRO(GETNCNT);
MACRO(GETPID);
MACRO(GETVAL);
MACRO(GETALL);
MACRO(GETZCNT);
MACRO(SETVAL);
MACRO(SETALL);
TYPE(struct semid_ds);
STRUCT_MEMBER(struct semid_ds, struct ipc_perm, sem_perm);
#if defined(__linux__) // POSIX says short, Linux says long.
STRUCT_MEMBER(struct semid_ds, unsigned long, sem_nsems);
#else
STRUCT_MEMBER(struct semid_ds, unsigned short, sem_nsems);
#endif
#if defined(__LP64__)
STRUCT_MEMBER(struct semid_ds, time_t, sem_otime);
STRUCT_MEMBER(struct semid_ds, time_t, sem_ctime);
#else
// Starting at kernel v4.19, 32 bit changed these to unsigned values.
STRUCT_MEMBER(struct semid_ds, unsigned long, sem_otime);
STRUCT_MEMBER(struct semid_ds, unsigned long, sem_ctime);
#endif
TYPE(pid_t);
TYPE(size_t);
TYPE(time_t);
TYPE(struct sembuf);
STRUCT_MEMBER(struct sembuf, unsigned short, sem_num);
STRUCT_MEMBER(struct sembuf, short, sem_op);
STRUCT_MEMBER(struct sembuf, short, sem_flg);
FUNCTION(semctl, int (*f)(int, int, int, ...));
FUNCTION(semget, int (*f)(key_t, int, int));
FUNCTION(semop, int (*f)(int, struct sembuf*, size_t));
}
#endif