 fa59fc6eb4
			
		
	
	
		fa59fc6eb4
		
	
	
	
	
		
			
			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 */
 |