Headers that will be shared between old includes and NetBSD-like includes are moved into common/include tree. They are still copied in /usr/include in 'make includes', so compilation and programs aren't be affected.
		
			
				
	
	
		
			100 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Privilege-related definitions. */
 | 
						|
 | 
						|
#ifndef _MINIX_PRIV_H
 | 
						|
#define _MINIX_PRIV_H
 | 
						|
 | 
						|
#include <minix/com.h>
 | 
						|
#include <minix/config.h>
 | 
						|
 | 
						|
/* Static privilege id definitions. */
 | 
						|
#define NR_STATIC_PRIV_IDS         NR_BOOT_PROCS
 | 
						|
#define is_static_priv_id(id)	   (id >= 0 && id < NR_STATIC_PRIV_IDS)
 | 
						|
#define static_priv_id(n)          (NR_TASKS + (n))
 | 
						|
 | 
						|
/* Unprivileged user processes all share the privilege structure of the
 | 
						|
 * user processesess.
 | 
						|
 * This id must be fixed because it is used to check send mask entries.
 | 
						|
 */
 | 
						|
#define USER_PRIV_ID	static_priv_id(ROOT_USR_PROC_NR)
 | 
						|
/* Specifies a null privilege id.
 | 
						|
 */
 | 
						|
#define NULL_PRIV_ID	(-1)
 | 
						|
 | 
						|
/* Allowed targets. */
 | 
						|
#define NO_M      (-1)              /* no targets allowed */
 | 
						|
#define ALL_M     (-2)              /* all targets allowed */
 | 
						|
 | 
						|
/* Allowed calls. */
 | 
						|
#define NO_C      (-1)              /* no calls allowed */
 | 
						|
#define ALL_C     (-2)              /* all calls allowed */
 | 
						|
#define NULL_C    (-3)              /* null call entry */
 | 
						|
 | 
						|
/*
 | 
						|
 * Default privilege settings used in the system
 | 
						|
 */
 | 
						|
/* privilege flags */
 | 
						|
#define IDL_F     (SYS_PROC | BILLABLE) /* idle task is not preemptible as we
 | 
						|
                                         * don't want it to interfere with the
 | 
						|
                                         * timer tick interrupt handler code.
 | 
						|
                                         * Unlike other processes idle task is
 | 
						|
                                         * handled in a special way and is
 | 
						|
                                         * preempted always if timer tick occurs
 | 
						|
                                         * and there is another runnable process
 | 
						|
                                         */
 | 
						|
#define TSK_F     (SYS_PROC)                       /* other kernel tasks */
 | 
						|
#define SRV_F     (SYS_PROC | PREEMPTIBLE)         /* system services */
 | 
						|
#define DSRV_F    (SRV_F | DYN_PRIV_ID)            /* dynamic system services */
 | 
						|
#define RSYS_F    (SRV_F | ROOT_SYS_PROC)          /* root sys proc */
 | 
						|
#define VM_F      (SYS_PROC | VM_SYS_PROC)         /* vm */
 | 
						|
#define USR_F     (BILLABLE | PREEMPTIBLE)         /* user processes */
 | 
						|
#define IMM_F     (ROOT_SYS_PROC | VM_SYS_PROC | PREEMPTIBLE) /* immutable */
 | 
						|
 | 
						|
/* allowed traps */
 | 
						|
#define CSK_T     (1 << RECEIVE)                   /* clock and system */
 | 
						|
#define TSK_T     0                                /* other kernel tasks */
 | 
						|
#define SRV_T     (~0)                             /* system services */
 | 
						|
#define DSRV_T    (~0)                             /* dynamic system services */
 | 
						|
#define USR_T     (1 << SENDREC)                   /* user processes */
 | 
						|
 | 
						|
/* allowed targets */
 | 
						|
#define TSK_M     NO_M                             /* all kernel tasks */
 | 
						|
#define SRV_M     ALL_M                            /* system services */
 | 
						|
#define DSRV_M    ALL_M                            /* dynamic system services */
 | 
						|
#define USR_M     ALL_M                            /* user processes */
 | 
						|
 | 
						|
/* allowed kernel calls */
 | 
						|
#define TSK_KC    NO_C                             /* all kernel tasks */
 | 
						|
#define SRV_KC    ALL_C                            /* dynamic system services */
 | 
						|
#define DSRV_KC   ALL_C                            /* default sys proc */
 | 
						|
#define USR_KC    NO_C                             /* user processes */
 | 
						|
 | 
						|
/* allowed vm calls */
 | 
						|
#define SRV_VC    ALL_C                            /* dynamic system services */
 | 
						|
#define DSRV_VC   ALL_C                            /* default sys proc */
 | 
						|
#define USR_VC    ALL_C                            /* user processes */
 | 
						|
 | 
						|
/* signal manager */
 | 
						|
#define SRV_SM    ROOT_SYS_PROC_NR                 /* system services */
 | 
						|
#define DSRV_SM   ROOT_SYS_PROC_NR                 /* dynamic system services */
 | 
						|
#define USR_SM    PM_PROC_NR                       /* user processes */
 | 
						|
 | 
						|
/* scheduler */
 | 
						|
#define SRV_SCH   KERNEL                           /* system services */
 | 
						|
#define DSRV_SCH  SCHED_PROC_NR                    /* dynamic system services */
 | 
						|
#define USR_SCH   NONE                             /* user processes */
 | 
						|
 | 
						|
/* scheduling priority queue. */
 | 
						|
#define SRV_Q     USER_Q                           /* system services */
 | 
						|
#define DSRV_Q    USER_Q                           /* dynamic system services */
 | 
						|
#define USR_Q     USER_Q                           /* user processes */
 | 
						|
 | 
						|
/* scheduling quantum. */
 | 
						|
#define SRV_QT    USER_QUANTUM                     /* system services */
 | 
						|
#define DSRV_QT   USER_QUANTUM                     /* dynamic system services */
 | 
						|
#define USR_QT    USER_QUANTUM                     /* user processes */
 | 
						|
 | 
						|
/* default CPU */
 | 
						|
#define DSRV_CPU USER_DEFAULT_CPU
 | 
						|
 | 
						|
#endif /* _MINIX_PRIV_H */
 |