diff options
author | phk <phk@FreeBSD.org> | 1996-05-02 14:21:14 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1996-05-02 14:21:14 +0000 |
commit | 5a6fb3a7da69f11fbe5093f4a2cc7a4d86df5b36 (patch) | |
tree | c11aef2f7af5663393e978cd03a223a2ffbe6c69 /sys/amd64/include | |
parent | 189514aa416a464e44c25c45746e8ed5e850f03d (diff) | |
download | FreeBSD-src-5a6fb3a7da69f11fbe5093f4a2cc7a4d86df5b36.zip FreeBSD-src-5a6fb3a7da69f11fbe5093f4a2cc7a4d86df5b36.tar.gz |
removed:
CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei()
ptei() kvtopte() ptetov() ispt() ptetoav() &c &c
new:
NPDEPG
Major macro cleanup.
Diffstat (limited to 'sys/amd64/include')
-rw-r--r-- | sys/amd64/include/pmap.h | 57 | ||||
-rw-r--r-- | sys/amd64/include/vmparam.h | 6 |
2 files changed, 41 insertions, 22 deletions
diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 87e483f..73798ad 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -42,17 +42,41 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $Id: pmap.h,v 1.35 1996/04/03 05:23:44 dyson Exp $ + * $Id: pmap.h,v 1.36 1996/04/30 12:02:11 phk Exp $ */ #ifndef _MACHINE_PMAP_H_ #define _MACHINE_PMAP_H_ -#include <machine/pte.h> +#define PG_V 0x00000001 +#define PG_RW 0x00000002 +#define PG_u 0x00000004 +#define PG_PROT 0x00000006 /* all protection bits . */ +#define PG_NC_PWT 0x00000008 /* page cache write through */ +#define PG_NC_PCD 0x00000010 /* page cache disable */ +#define PG_N 0x00000018 /* Non-cacheable */ +#define PG_U 0x00000020 /* page was accessed */ +#define PG_M 0x00000040 /* page was modified */ +#define PG_PS 0x00000080 /* page is big size */ +#define PG_G 0x00000100 /* page is global */ +#define PG_W 0x00000200 /* "Wired" pseudoflag */ +#define PG_FRAME 0xfffff000 + +#define PG_KR 0x00000000 +#define PG_KW 0x00000002 -typedef unsigned int *pd_entry_t; -typedef unsigned int *pt_entry_t; -struct vm_map; +/* + * Page Protection Exception bits + */ + +#define PGEX_P 0x01 /* Protection violation vs. not present */ +#define PGEX_W 0x02 /* during a Write cycle */ +#define PGEX_U 0x04 /* access from User mode (UPL) */ + +/* + * Pte related macros + */ +#define VADDR(pdi, pti) ((vm_offset_t)(((pdi)<<PDRSHIFT)|((pti)<<PAGE_SHIFT))) /* * NKPDE controls the virtual space of the kernel, what ever is left, minus @@ -79,12 +103,17 @@ struct vm_map; * XXX This works for now, but I am not real happy with it, I'll fix it * right after I fix locore.s and the magic 28K hole */ -#define APTDPTDI (NPTEPG-1) /* alt ptd entry that points to APTD */ +#define APTDPTDI (NPDEPG-1) /* alt ptd entry that points to APTD */ #define KPTDI (APTDPTDI-NKPDE)/* start of kernel virtual pde's */ #define PTDPTDI (KPTDI-1) /* ptd entry that points to ptd! */ #define KSTKPTDI (PTDPTDI-1) /* ptd entry for u./kernel&user stack */ #define KSTKPTEOFF (NPTEPG-UPAGES) /* pte entry for kernel stack */ +#ifndef LOCORE +typedef unsigned int *pd_entry_t; +typedef unsigned int *pt_entry_t; +struct vm_map; + #define PDESIZE sizeof(pd_entry_t) /* for assembly files */ #define PTESIZE sizeof(pt_entry_t) /* for assembly files */ @@ -106,14 +135,10 @@ extern int IdlePTD; /* physical address of "Idle" state directory */ * the corresponding pde that in turn maps it. */ #define vtopte(va) (PTmap + i386_btop(va)) -#define kvtopte(va) vtopte(va) -#define ptetov(pt) (i386_ptob(pt - PTmap)) -#define vtophys(va) (((int) (*vtopte(va))&PG_FRAME) | ((int)(va) & PGOFSET)) -#define ispt(va) ((va) >= UPT_MIN_ADDRESS && (va) <= KPT_MAX_ADDRESS) +#define vtophys(va) (((int) (*vtopte(va))&PG_FRAME) | ((int)(va) & PAGE_MASK)) #define avtopte(va) (APTmap + i386_btop(va)) -#define ptetoav(pt) (i386_ptob(pt - APTmap)) -#define avtophys(va) (((int) (*avtopte(va))&PG_FRAME) | ((int)(va) & PGOFSET)) +#define avtophys(va) (((int) (*avtopte(va))&PG_FRAME) | ((int)(va) & PAGE_MASK)) #ifdef KERNEL /* @@ -132,13 +157,6 @@ pmap_kextract(vm_offset_t va) #endif /* - * macros to generate page directory/table indices - */ - -#define pdei(va) (((va)&PD_MASK)>>PD_SHIFT) -#define ptei(va) (((va)&PT_MASK)>>PG_SHIFT) - -/* * Pmap stuff */ @@ -198,5 +216,6 @@ void pmap_unuse_pt __P((pmap_t, vm_offset_t, vm_page_t)); vm_page_t pmap_use_pt __P((pmap_t, vm_offset_t)); #endif /* KERNEL */ +#endif /* !LOCORE */ #endif /* !_MACHINE_PMAP_H_ */ diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h index 7212da9..48b570d 100644 --- a/sys/amd64/include/vmparam.h +++ b/sys/amd64/include/vmparam.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $Id: vmparam.h,v 1.19 1996/03/12 15:37:58 davidg Exp $ + * $Id: vmparam.h,v 1.20 1996/04/30 12:02:12 phk Exp $ */ @@ -67,7 +67,7 @@ #define SGROWSIZ (128UL*1024) /* amount to grow stack */ #endif -#define USRTEXT (1*NBPG) /* base of user text XXX bogus */ +#define USRTEXT (1*PAGE_SIZE) /* base of user text XXX bogus */ /* * Size of the Shared Memory Pages page table. @@ -100,7 +100,7 @@ #define KERNBASE VADDR(KPTDI, 0) -#define KPT_MAX_ADDRESS VADDR(PTDPTDI, APTDPTDI) +#define KPT_MAX_ADDRESS VADDR(PTDPTDI, KPTDI+NKPT) #define KPT_MIN_ADDRESS VADDR(PTDPTDI, KPTDI) #define UPT_MAX_ADDRESS VADDR(PTDPTDI, PTDPTDI) |