- 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
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 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 */
 |