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

📄 mproc.h

📁 一个简单的操作系统minix的核心代码
💻 H
字号:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
				src/mm/mproc.h	 	 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

16300	/* This table has one slot per process.  It contains all the memory management
16301	 * information for each process.  Among other things, it defines the text, data
16302	 * and stack segments, uids and gids, and various flags.  The kernel and file
16303	 * systems have tables that are also indexed by process, with the contents
16304	 * of corresponding slots referring to the same process in all three.
16305	 */
16306	
16307	EXTERN struct mproc {
16308	  struct mem_map mp_seg[NR_SEGS];/* points to text, data, stack */
16309	  char mp_exitstatus;           /* storage for status when process exits */
16310	  char mp_sigstatus;            /* storage for signal # for killed procs */
16311	  pid_t mp_pid;                 /* process id */
16312	  pid_t mp_procgrp;             /* pid of process group (used for signals) */
16313	  pid_t mp_wpid;                /* pid this process is waiting for */
16314	  int mp_parent;                /* index of parent process */
16315	
16316	  /* Real and effective uids and gids. */
16317	  uid_t mp_realuid;             /* process' real uid */
16318	  uid_t mp_effuid;              /* process' effective uid */
16319	  gid_t mp_realgid;             /* process' real gid */
16320	  gid_t mp_effgid;              /* process' effective gid */
16321	
16322	  /* File identification for sharing. */
16323	  ino_t mp_ino;                 /* inode number of file */
16324	  dev_t mp_dev;                 /* device number of file system */
16325	  time_t mp_ctime;              /* inode changed time */
16326	
16327	  /* Signal handling information. */
16328	  sigset_t mp_ignore;           /* 1 means ignore the signal, 0 means don't */
16329	  sigset_t mp_catch;            /* 1 means catch the signal, 0 means don't */
16330	  sigset_t mp_sigmask;          /* signals to be blocked */
16331	  sigset_t mp_sigmask2;         /* saved copy of mp_sigmask */
16332	  sigset_t mp_sigpending;       /* signals being blocked */
16333	  struct sigaction mp_sigact[_NSIG + 1]; /* as in sigaction(2) */
16334	  vir_bytes mp_sigreturn;       /* address of C library __sigreturn function */
16335	
16336	  /* Backwards compatibility for signals. */
16337	  sighandler_t mp_func;         /* all sigs vectored to a single user fcn */
16338	
16339	  unsigned mp_flags;            /* flag bits */
16340	  vir_bytes mp_procargs;        /* ptr to proc's initial stack arguments */
16341	} mproc[NR_PROCS];
16342	
16343	/* Flag values */
16344	#define IN_USE           001    /* set when 'mproc' slot in use */
16345	#define WAITING          002    /* set by WAIT system call */
16346	#define HANGING          004    /* set by EXIT system call */
16347	#define PAUSED           010    /* set by PAUSE system call */
16348	#define ALARM_ON         020    /* set when SIGALRM timer started */
16349	#define SEPARATE         040    /* set if file is separate I & D space */
16350	#define TRACED          0100    /* set if process is to be traced */
16351	#define STOPPED         0200    /* set if process stopped for tracing */
16352	#define SIGSUSPENDED    0400    /* set by SIGSUSPEND system call */
16353	
16354	#define NIL_MPROC ((struct mproc *) 0)

⌨️ 快捷键说明

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