 2fe8fb192f
			
		
	
	
		2fe8fb192f
		
	
	
	
	
		
			
			There is important information about booting non-ack images in docs/UPDATING. ack/aout-format images can't be built any more, and booting clang/ELF-format ones is a little different. Updating to the new boot monitor is recommended. Changes in this commit: . drop boot monitor -> allowing dropping ack support . facility to copy ELF boot files to /boot so that old boot monitor can still boot fairly easily, see UPDATING . no more ack-format libraries -> single-case libraries . some cleanup of OBJECT_FMT, COMPILER_TYPE, etc cases . drop several ack toolchain commands, but not all support commands (e.g. aal is gone but acksize is not yet). . a few libc files moved to netbsd libc dir . new /bin/date as minix date used code in libc/ . test compile fix . harmonize includes . /usr/lib is no longer special: without ack, /usr/lib plays no kind of special bootstrapping role any more and bootstrapping is done exclusively through packages, so releases depend even less on the state of the machine making them now. . rename nbsd_lib* to lib* . reduce mtree
		
			
				
	
	
		
			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 */
 |