linux/include/uapi/linux/sem.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_LINUX_SEM_H
#define _UAPI_LINUX_SEM_H

#include <linux/ipc.h>

/* semop flags */
#define SEM_UNDO

/* semctl Command Definitions. */
#define GETPID
#define GETVAL
#define GETALL
#define GETNCNT
#define GETZCNT
#define SETVAL
#define SETALL

/* ipcs ctl cmds */
#define SEM_STAT
#define SEM_INFO
#define SEM_STAT_ANY

/* Obsolete, used only for backwards compatibility and libc5 compiles */
struct semid_ds {};

/* Include the definition of semid64_ds */
#include <asm/sembuf.h>

/* semop system calls takes an array of these. */
struct sembuf {};

/* arg for semctl system calls. */
semun;

struct  seminfo {};

/*
 * SEMMNI, SEMMSL and SEMMNS are default values which can be
 * modified by sysctl.
 * The values has been chosen to be larger than necessary for any
 * known configuration.
 *
 * SEMOPM should not be increased beyond 1000, otherwise there is the
 * risk that semop()/semtimedop() fails due to kernel memory fragmentation when
 * allocating the sop array.
 */


#define SEMMNI
#define SEMMSL
#define SEMMNS
#define SEMOPM
#define SEMVMX
#define SEMAEM

/* unused */
#define SEMUME
#define SEMMNU
#define SEMMAP
#define SEMUSZ


#endif /* _UAPI_LINUX_SEM_H */