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

📄 user.h

📁 UNIX版本6的源代码
💻 H
字号:
/* * The user structure. * One allocated per process. * Contains all per process data * that doesn't need to be referenced * while the process is swapped. * The user block is USIZE*64 bytes * long; resides at virtual kernel * loc 140000; contains the system * stack per user; is cross referenced * with the proc structure for the * same process. */struct user{	int	u_rsav[2];		/* save r5,r6 when exchanging stacks */	int	u_fsav[25];		/* save fp registers */					/* rsav and fsav must be first in structure */	char	u_segflg;		/* flag for IO; user or kernel space */	char	u_error;		/* return error code */	char	u_uid;			/* effective user id */	char	u_gid;			/* effective group id */	char	u_ruid;			/* real user id */	char	u_rgid;			/* real group id */	int	u_procp;		/* pointer to proc structure */	char	*u_base;		/* base address for IO */	char	*u_count;		/* bytes remaining for IO */	char	*u_offset[2];		/* offset in file for IO */	int	*u_cdir;		/* pointer to inode of current directory */	char	u_dbuf[DIRSIZ];		/* current pathname component */	char	*u_dirp;		/* current pointer to inode */	struct	{			/* current directory entry */		int	u_ino;		char	u_name[DIRSIZ];	} u_dent;	int	*u_pdir;		/* inode of parent directory of dirp */	int	u_uisa[16];		/* prototype of segmentation addresses */	int	u_uisd[16];		/* prototype of segmentation descriptors */	int	u_ofile[NOFILE];	/* pointers to file structures of open files */	int	u_arg[5];		/* arguments to current system call */	int	u_tsize;		/* text size (*64) */	int	u_dsize;		/* data size (*64) */	int	u_ssize;		/* stack size (*64) */	int	u_sep;			/* flag for I and D separation */	int	u_qsav[2];		/* label variable for quits and interrupts */	int	u_ssav[2];		/* label variable for swapping */	int	u_signal[NSIG];		/* disposition of signals */	int	u_utime;		/* this process user time */	int	u_stime;		/* this process system time */	int	u_cutime[2];		/* sum of childs' utimes */	int	u_cstime[2];		/* sum of childs' stimes */	int	*u_ar0;			/* address of users saved R0 */	int	u_prof[4];		/* profile arguments */	char	u_intflg;		/* catch intr from sys */					/* kernel stack per user					 * extends from u + USIZE*64					 * backward not to reach here					 */} u;/* u_error codes */#define	EFAULT	106#define	EPERM	1#define	ENOENT	2#define	ESRCH	3#define	EINTR	4#define	EIO	5#define	ENXIO	6#define	E2BIG	7#define	ENOEXEC	8#define	EBADF	9#define	ECHILD	10#define	EAGAIN	11#define	ENOMEM	12#define	EACCES	13#define	ENOTBLK	15#define	EBUSY	16#define	EEXIST	17#define	EXDEV	18#define	ENODEV	19#define	ENOTDIR	20#define	EISDIR	21#define	EINVAL	22#define	ENFILE	23#define	EMFILE	24#define	ENOTTY	25#define	ETXTBSY	26#define	EFBIG	27#define	ENOSPC	28#define	ESPIPE	29#define	EROFS	30#define	EMLINK	31#define	EPIPE	32

⌨️ 快捷键说明

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