⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com.h

📁 操作系统课程设计 在minix3下实现实时进程
💻 H
📖 第 1 页 / 共 2 页
字号:
#  define SYS_TIMES	 (KERNEL_CALL + 25)	/* sys_times() */#  define SYS_GETINFO    (KERNEL_CALL + 26) 	/* sys_getinfo() */#  define SYS_ABORT      (KERNEL_CALL + 27)	/* sys_abort() */#  define SYS_IOPENABLE  (KERNEL_CALL + 28)	/* sys_enable_iop() */#  define SYS_CHRT       (KERNEL_CALL + 29)	/* sys_chrt() */#define NR_SYS_CALLS	30	/* number of system calls */ /* Field names for SYS_MEMSET, SYS_SEGCTL. */#define MEM_PTR		m2_p1	/* base */#define MEM_COUNT	m2_l1	/* count */#define MEM_PATTERN	m2_l2   /* pattern to write */#define MEM_CHUNK_BASE	m4_l1	/* physical base address */#define MEM_CHUNK_SIZE	m4_l2	/* size of mem chunk */#define MEM_TOT_SIZE	m4_l3	/* total memory size */#define MEM_CHUNK_TAG	m4_l4	/* tag to identify chunk of mem *//* Field names for SYS_DEVIO, SYS_VDEVIO, SYS_SDEVIO. */#define DIO_REQUEST	m2_i3	/* device in or output */#   define DIO_INPUT	    0	/* input */#   define DIO_OUTPUT	    1	/* output */#define DIO_TYPE	m2_i1   /* flag indicating byte, word, or long */ #   define DIO_BYTE	  'b'	/* byte type values */#   define DIO_WORD	  'w'	/* word type values */#   define DIO_LONG	  'l'	/* long type values */#define DIO_PORT	m2_l1	/* single port address */#define DIO_VALUE	m2_l2	/* single I/O value */#define DIO_VEC_ADDR	m2_p1   /* address of buffer or (p,v)-pairs */#define DIO_VEC_SIZE	m2_l2   /* number of elements in vector */#define DIO_VEC_PROC	m2_i2   /* number of process where vector is *//* Field names for SYS_SIGNARLM, SYS_FLAGARLM, SYS_SYNCALRM. */#define ALRM_EXP_TIME   m2_l1	/* expire time for the alarm call */#define ALRM_ABS_TIME   m2_i2	/* set to 1 to use absolute alarm time */#define ALRM_TIME_LEFT  m2_l1	/* how many ticks were remaining */#define ALRM_PROC_NR    m2_i1	/* which process wants the alarm? */#define ALRM_FLAG_PTR	m2_p1   /* virtual address of timeout flag */ 	/* Field names for SYS_IRQCTL. */#define IRQ_REQUEST     m5_c1	/* what to do? */#  define IRQ_SETPOLICY     1	/* manage a slot of the IRQ table */#  define IRQ_RMPOLICY      2	/* remove a slot of the IRQ table */#  define IRQ_ENABLE        3	/* enable interrupts */#  define IRQ_DISABLE       4	/* disable interrupts */#define IRQ_VECTOR	m5_c2   /* irq vector */#define IRQ_POLICY	m5_i1   /* options for IRQCTL request */#  define IRQ_REENABLE  0x001	/* reenable IRQ line after interrupt */#  define IRQ_BYTE      0x100	/* byte values */      #  define IRQ_WORD      0x200	/* word values */#  define IRQ_LONG      0x400	/* long values */#define IRQ_PROC_NR	m5_i2   /* process number, SELF, NONE */#define IRQ_HOOK_ID	m5_l3   /* id of irq hook at kernel *//* Field names for SYS_SEGCTL. */#define SEG_SELECT	m4_l1   /* segment selector returned */ #define SEG_OFFSET	m4_l2	/* offset in segment returned */#define SEG_PHYS	m4_l3	/* physical address of segment */#define SEG_SIZE	m4_l4	/* segment size */#define SEG_INDEX	m4_l5	/* segment index in remote map *//* Field names for SYS_VIDCOPY. */#define VID_REQUEST	m4_l1	/* what to do? */#  define VID_VID_COPY	   1	/* request vid_vid_copy() */#  define MEM_VID_COPY     2	/* request mem_vid_copy() */#define VID_SRC_ADDR	m4_l2	/* virtual address in memory */#define VID_SRC_OFFSET	m4_l3	/* offset in video memory */#define VID_DST_OFFSET	m4_l4	/* offset in video memory */#define VID_CP_COUNT	m4_l5	/* number of words to be copied *//* Field names for SYS_ABORT. */#define ABRT_HOW	m1_i1	/* RBT_REBOOT, RBT_HALT, etc. */#define ABRT_MON_PROC   m1_i2	/* process where monitor params are */#define ABRT_MON_LEN	m1_i3	/* length of monitor params */#define ABRT_MON_ADDR   m1_p1	/* virtual address of monitor params *//* Field names for _UMAP, _VIRCOPY, _PHYSCOPY. */#define CP_SRC_SPACE 	m5_c1	/* T or D space (stack is also D) */#define CP_SRC_PROC_NR	m5_i1	/* process to copy from */#define CP_SRC_ADDR	m5_l1	/* address where data come from */#define CP_DST_SPACE	m5_c2	/* T or D space (stack is also D) */#define CP_DST_PROC_NR	m5_i2	/* process to copy to */#define CP_DST_ADDR	m5_l2	/* address where data go to */#define CP_NR_BYTES	m5_l3	/* number of bytes to copy *//* Field names for SYS_VCOPY and SYS_VVIRCOPY. */#define VCP_NR_OK	m1_i2	/* number of successfull copies */#define VCP_VEC_SIZE	m1_i3	/* size of copy vector */#define VCP_VEC_ADDR	m1_p1	/* pointer to copy vector *//* Field names for SYS_GETINFO. */#define I_REQUEST      m7_i3	/* what info to get */#   define GET_KINFO	   0	/* get kernel information structure */#   define GET_IMAGE	   1	/* get system image table */#   define GET_PROCTAB	   2	/* get kernel process table */#   define GET_RANDOMNESS  3	/* get randomness buffer */#   define GET_MONPARAMS   4	/* get monitor parameters */#   define GET_KENV	   5	/* get kernel environment string */#   define GET_IRQHOOKS	   6	/* get the IRQ table */#   define GET_KMESSAGES   7	/* get kernel messages */#   define GET_PRIVTAB	   8	/* get kernel privileges table */#   define GET_KADDRESSES  9	/* get various kernel addresses */#   define GET_SCHEDINFO  10	/* get scheduling queues */#   define GET_PROC 	  11	/* get process slot if given process */#   define GET_MACHINE 	  12	/* get machine information */#   define GET_LOCKTIMING 13	/* get lock()/unlock() latency timing */#   define GET_BIOSBUFFER 14	/* get a buffer for BIOS calls */#define I_PROC_NR      m7_i4	/* calling process */#define I_VAL_PTR      m7_p1	/* virtual address at caller */ #define I_VAL_LEN      m7_i1	/* max length of value */#define I_VAL_PTR2     m7_p2	/* second virtual address */ #define I_VAL_LEN2     m7_i2	/* second length, or proc nr *//* Field names for SYS_TIMES. */#define T_PROC_NR      m4_l1	/* process to request time info for */#define T_USER_TIME    m4_l1	/* user time consumed by process */#define T_SYSTEM_TIME  m4_l2	/* system time consumed by process */#define T_CHILD_UTIME  m4_l3	/* user time consumed by process' children */#define T_CHILD_STIME  m4_l4	/* sys time consumed by process' children */#define T_BOOT_TICKS   m4_l5	/* number of clock ticks since boot time *//* Field names for SYS_TRACE, SYS_SVRCTL. */#define CTL_PROC_NR    m2_i1	/* process number of the caller */#define CTL_REQUEST    m2_i2	/* server control request */#define CTL_MM_PRIV    m2_i3	/* privilege as seen by PM */#define CTL_ARG_PTR    m2_p1	/* pointer to argument */#define CTL_ADDRESS    m2_l1	/* address at traced process' space */#define CTL_DATA       m2_l2	/* data field for tracing *//* Field names for SYS_KILL, SYS_SIGCTL */#define SIG_REQUEST    m2_l2	/* PM signal control request */#define S_GETSIG 	   0	/* get pending kernel signal */#define S_ENDSIG 	   1	/* finish a kernel signal */#define S_SENDSIG   	   2	/* POSIX style signal handling */#define S_SIGRETURN	   3 	/* return from POSIX handling */#define S_KILL		   4 	/* servers kills process with signal */#define SIG_PROC       m2_i1	/* process number for inform */#define SIG_NUMBER     m2_i2	/* signal number to send */#define SIG_FLAGS      m2_i3	/* signal flags field */#define SIG_MAP        m2_l1	/* used by kernel to pass signal bit map */#define SIG_CTXT_PTR   m2_p1	/* pointer to info to restore signal context *//* Field names for SYS_FORK, _EXEC, _EXIT, _NEWMAP. */#define PR_PROC_NR     m1_i1	/* indicates a (child) process */#define PR_PRIORITY    m1_i2	/* process priority */#define PR_PPROC_NR    m1_i2	/* indicates a (parent) process */#define PR_PID	       m1_i3	/* process id at process manager */#define PR_STACK_PTR   m1_p1	/* used for stack ptr in sys_exec, sys_getsp */#define PR_TRACING     m1_i3	/* flag to indicate tracing is on/ off */#define PR_NAME_PTR    m1_p2	/* tells where program name is for dmp */#define PR_IP_PTR      m1_p3	/* initial value for ip after exec */#define PR_MEM_PTR     m1_p1	/* tells where memory map is for sys_newmap *//* Field names for SYS_INT86 */#define INT86_REG86    m1_p1	/* pointer to registers *//* Field names for SELECT (FS). */#define SEL_NFDS       m8_i1#define SEL_READFDS    m8_p1#define SEL_WRITEFDS   m8_p2#define SEL_ERRORFDS   m8_p3#define SEL_TIMEOUT    m8_p4/*===========================================================================* *                Messages for the Reincarnation Server 		     * *===========================================================================*/#define RS_RQ_BASE		0x700#define RS_UP		(RS_RQ_BASE + 0)	/* start system service */#define RS_DOWN		(RS_RQ_BASE + 1)	/* stop system service */#define RS_REFRESH	(RS_RQ_BASE + 2)	/* restart system service */#define RS_RESCUE	(RS_RQ_BASE + 3)	/* set rescue directory */#define RS_SHUTDOWN	(RS_RQ_BASE + 4)	/* alert about shutdown */#  define RS_CMD_ADDR		m1_p1		/* command string */#  define RS_CMD_LEN		m1_i1		/* length of command */#  define RS_PID		m1_i1		/* pid of system service */#  define RS_PERIOD 	        m1_i2		/* heartbeat period */#  define RS_DEV_MAJOR          m1_i3           /* major device number *//*===========================================================================* *                Messages for the Data Store Server			     * *===========================================================================*/#define DS_RQ_BASE		0x800#define DS_PUBLISH	(DS_RQ_BASE + 0)	/* publish information */#define DS_RETRIEVE	(DS_RQ_BASE + 1)	/* retrieve information */#define DS_SUBSCRIBE	(DS_RQ_BASE + 2)	/* subscribe to information */#  define DS_KEY		m2_i1		/* key for the information */#  define DS_FLAGS		m2_i2		/* flags provided by caller */#  define DS_AUTH		m2_p1		/* authorization of caller */#  define DS_VAL_L1		m2_l1		/* first long data value */#  define DS_VAL_L2		m2_l2		/* second long data value *//*===========================================================================* *                Miscellaneous messages used by TTY			     * *===========================================================================*//* Miscellaneous request types and field names, e.g. used by IS server. */#define PANIC_DUMPS  		97  	/* debug dumps at the TTY on RBT_PANIC */#define FKEY_CONTROL 		98  	/* control a function key at the TTY */#  define FKEY_REQUEST	     m2_i1	/* request to perform at TTY */#  define    FKEY_MAP		10	/* observe function key */#  define    FKEY_UNMAP		11	/* stop observing function key */#  define    FKEY_EVENTS	12	/* request open key presses */#  define FKEY_FKEYS	      m2_l1	/* F1-F12 keys pressed */#  define FKEY_SFKEYS	      m2_l2	/* Shift-F1-F12 keys pressed */#define DIAGNOSTICS 	100 	/* output a string without FS in between */#  define DIAG_PRINT_BUF      m1_p1#  define DIAG_BUF_COUNT      m1_i1#  define DIAG_PROC_NR        m1_i2#define GET_KMESS	101	/* get kmess from TTY */#  define GETKM_PTR	      m1_p1#endif /* _MINIX_COM_H */ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -