xref: /inferno-os/os/boot/puma/mem.h (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1*74a4d8c2SCharles.Forsyth /*
2*74a4d8c2SCharles.Forsyth  * Memory and machine-specific definitions.  Used in C and assembler.
3*74a4d8c2SCharles.Forsyth  */
4*74a4d8c2SCharles.Forsyth 
5*74a4d8c2SCharles.Forsyth /*
6*74a4d8c2SCharles.Forsyth  * Sizes
7*74a4d8c2SCharles.Forsyth  */
8*74a4d8c2SCharles.Forsyth #define	BI2BY		8			/* bits per byte */
9*74a4d8c2SCharles.Forsyth #define	BI2WD		32			/* bits per word */
10*74a4d8c2SCharles.Forsyth #define	BY2WD		4			/* bytes per word */
11*74a4d8c2SCharles.Forsyth #define	BY2PG		4096			/* bytes per page */
12*74a4d8c2SCharles.Forsyth #define	WD2PG		(BY2PG/BY2WD)		/* words per page */
13*74a4d8c2SCharles.Forsyth #define	PGSHIFT		12			/* log(BY2PG) */
14*74a4d8c2SCharles.Forsyth #define	PGROUND(s)	(((s)+(BY2PG-1))&~(BY2PG-1))
15*74a4d8c2SCharles.Forsyth 
16*74a4d8c2SCharles.Forsyth #define	MAXMACH		1			/* max # cpus system can run */
17*74a4d8c2SCharles.Forsyth 
18*74a4d8c2SCharles.Forsyth /*
19*74a4d8c2SCharles.Forsyth  * Time
20*74a4d8c2SCharles.Forsyth  */
21*74a4d8c2SCharles.Forsyth #define	HZ		(20)				/* clock frequency */
22*74a4d8c2SCharles.Forsyth #define	MS2HZ		(1000/HZ)			/* millisec per clock tick */
23*74a4d8c2SCharles.Forsyth #define	TK2SEC(t)	((t)/HZ)			/* ticks to seconds */
24*74a4d8c2SCharles.Forsyth #define	TK2MS(t)	((((ulong)(t))*1000)/HZ)	/* ticks to milliseconds */
25*74a4d8c2SCharles.Forsyth #define	MS2TK(t)	((((ulong)(t))*HZ)/1000)	/* milliseconds to ticks */
26*74a4d8c2SCharles.Forsyth 
27*74a4d8c2SCharles.Forsyth /*
28*74a4d8c2SCharles.Forsyth  * Fundamental addresses
29*74a4d8c2SCharles.Forsyth  */
30*74a4d8c2SCharles.Forsyth 
31*74a4d8c2SCharles.Forsyth /*
32*74a4d8c2SCharles.Forsyth  *  Address spaces
33*74a4d8c2SCharles.Forsyth  *
34*74a4d8c2SCharles.Forsyth  *  Kernel is at 0x00008000
35*74a4d8c2SCharles.Forsyth  */
36*74a4d8c2SCharles.Forsyth #define	KZERO		0x00000000		/* base of kernel address space */
37*74a4d8c2SCharles.Forsyth #define	KTZERO		KZERO			/* first address in kernel text */
38*74a4d8c2SCharles.Forsyth #define	MACHSIZE	4096
39