8a54d267f0
- sys_getbiosbuffer feature is gone (from kernel; available from vm) - bump version number because munmap() calls that newly compiled binaries will do trigger an ugly (but harmless) error message in older VM's - some new VM calls and flags, the new IPC calls - some new CR0 register bits - added files for shared memory
81 lines
2 KiB
C
81 lines
2 KiB
C
#ifndef _SYS_SEM_H
|
|
#define _SYS_SEM_H
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/ipc.h>
|
|
|
|
#define SEMMNI 128
|
|
#define SEMMSL 250
|
|
#define SEMMNS (SEMMSL*SEMMNI)
|
|
|
|
#define SEMOPM 32
|
|
#define SEMVMX 32767
|
|
|
|
/* Flags for `semop'. */
|
|
#define SEM_UNDO 0x1000 /* undo the operation on exit */
|
|
|
|
/* Commands for `semctl'. */
|
|
#define GETPID 11 /* get sempid */
|
|
#define GETVAL 12 /* get semval */
|
|
#define GETALL 13 /* get all semval's */
|
|
#define GETNCNT 14 /* get semncnt */
|
|
#define GETZCNT 15 /* get semzcnt */
|
|
#define SETVAL 16 /* set semval */
|
|
#define SETALL 17 /* set all semval's */
|
|
|
|
|
|
/* Data structure describing a set of semaphores. */
|
|
struct semid_ds
|
|
{
|
|
struct ipc_perm sem_perm; /* operation permission struct */
|
|
time_t sem_otime; /* last semop() time */
|
|
unsigned long int __unused1;
|
|
time_t sem_ctime; /* last time changed by semctl() */
|
|
unsigned long int __unused2;
|
|
unsigned long int sem_nsems; /* number of semaphores in set */
|
|
unsigned long int __unused3;
|
|
unsigned long int __unused4;
|
|
};
|
|
|
|
/* Structure used for argument to `semop' to describe operations. */
|
|
struct sembuf
|
|
{
|
|
unsigned short int sem_num; /* semaphore number */
|
|
short int sem_op; /* semaphore operation */
|
|
short int sem_flg; /* operation flag */
|
|
};
|
|
|
|
|
|
/* Semaphore control operation. */
|
|
_PROTOTYPE( int semctl, (int __semid, int __semnum, int __cmd, ...));
|
|
|
|
/* Get semaphore. */
|
|
_PROTOTYPE( int semget, (key_t __key, int __nsems, int __semflg));
|
|
|
|
/* Operate on semaphore. */
|
|
_PROTOTYPE( int semop, (int __semid, struct sembuf *__sops, size_t __nsops));
|
|
|
|
|
|
#ifdef __USE_MISC
|
|
|
|
/* ipcs ctl cmds */
|
|
# define SEM_STAT 18
|
|
# define SEM_INFO 19
|
|
|
|
struct seminfo
|
|
{
|
|
int semmap;
|
|
int semmni;
|
|
int semmns;
|
|
int semmnu;
|
|
int semmsl;
|
|
int semopm;
|
|
int semume;
|
|
int semusz;
|
|
int semvmx;
|
|
int semaem;
|
|
};
|
|
|
|
#endif /* __USE_MISC */
|
|
|
|
#endif /* _SYS_SEM_H */
|