plan 9 kernel history: overview | file list | diff list

1991/0706/pc/mem.h (diff list | history)

1991/0705/sys/src/9/pc/mem.h:5,111991/0706/sys/src/9/pc/mem.h:5,10 (short | long | prev | next)
1991/0625    
/* 
 * Sizes 
 */ 
1991/0613    
                 
1991/0625    
#define	BI2BY		8			/* bits per byte */ 
#define BI2WD		32			/* bits per word */ 
#define	BY2WD		4			/* bytes per word */ 
1991/0705/sys/src/9/pc/mem.h:20,261991/0706/sys/src/9/pc/mem.h:19,24
1991/0705    
 * Time 
 * Clock frequency is ??? HZ 
1991/0613    
 */ 
                 
1991/0705    
#define	HZ		(18)			/* clock frequency */ 
#define	MS2HZ		(54)			/* millisec per clock tick */ 
#define	TK2SEC(t)	((t)*10/185)		/* ticks to seconds */ 
1991/0705/sys/src/9/pc/mem.h:30,361991/0706/sys/src/9/pc/mem.h:28,33
1991/0613    
/* 
1991/0625    
 * Fundamental addresses 
1991/0613    
 */ 
                 
1991/0625    
#define	USERADDR	0xC0000000 
#define	UREGADDR	(USERADDR+BY2PG-4*16) 
 
1991/0705/sys/src/9/pc/mem.h:40,461991/0706/sys/src/9/pc/mem.h:37,42
1991/0625    
 * User is at 0-2GB 
 * Kernel is at 2GB-4GB 
1991/0613    
 */ 
                 
1991/0625    
#define	UZERO	0			/* base of user address space */ 
#define	UTZERO	(UZERO+BY2PG)		/* first address in user text */ 
#define	TSTKTOP	USERADDR		/* end of new stack in sysexec */ 
1991/0705/sys/src/9/pc/mem.h:55,631991/0706/sys/src/9/pc/mem.h:51,58
1991/0625    
#define isphys(x) ((x)&KZERO) 
 
1991/0613    
/* 
 *  known segments (in GDT) and their selectors 
1991/0706    
 *  known 80386 segments (in GDT) and their selectors 
1991/0613    
 */ 
1991/0625    
                 
#define	NULLSEG	0	/* null segment */ 
1991/0703    
#define	KDSEG	1	/* kernel data/stack */ 
#define	KESEG	2	/* kernel executable */	 
1991/0705/sys/src/9/pc/mem.h:64,691991/0706/sys/src/9/pc/mem.h:59,66
1991/0703    
#define	UDSEG	3	/* user data/stack */ 
#define	UESEG	4	/* user executable */ 
1991/0625    
#define	SYSGATE	5	/* system call gate */ 
1991/0706    
#define	RDSEG	6	/* reboot data/stack */ 
#define	RESEG	7	/* reboot executable */	 
1991/0625    
 
#define SELGDT	(0<<3)	/* selector is in gdt */ 
#define	SELLDT	(1<<3)	/* selector is in ldt */ 
1991/0705/sys/src/9/pc/mem.h:77,821991/0706/sys/src/9/pc/mem.h:74,81
1991/0613    
#define UESEL	SELECTOR(UESEG, SELGDT, 3) 
#define UDSEL	SELECTOR(UDSEG, SELGDT, 3) 
#define USSEL	SELECTOR(UDSEG, SELGDT, 3) 
1991/0706    
#define RDSEL	SELECTOR(RDSEG, SELGDT, 0) 
#define RESEL	SELECTOR(RESEG, SELGDT, 0) 
1991/0613    
 
1991/0627    
/* 
 *  fields in segment descriptors 
1991/0705/sys/src/9/pc/mem.h:96,981991/0706/sys/src/9/pc/mem.h:95,104
1991/0627    
#define SEGW	(1<<9)		/* writable (for data/stack) */ 
#define	SEGR	(1<<9)		/* readable (for code) */ 
#define SEGD	(1<<22)		/* default 1==32bit (for code) */ 
1991/0706    
 
/* 
 *  virtual MMU entries 
 */ 
#define PTEMAPMEM	(1024*1024)	/* ??? */	 
#define SEGMAPSIZE	16		/* ??? */ 
#define	PTEPERTAB	(PTEMAPMEM/BY2PG)	/* ??? */ 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)