diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-02-07 17:00:16 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-02-07 17:00:16 +0000 |
commit | 3f06bdfd3de6e66c862de2c7734009ac6b794d83 (patch) | |
tree | 7a33d8ddb799e0da5ddcea814c518786dc763f7d /sys/arch/amd64 | |
parent | ad5fa7de9c9393cb861872da2baa3eb20f57caa5 (diff) |
Be sure to flag pte constants as UL, and cope with this in locore.
ok deraadt@
Diffstat (limited to 'sys/arch/amd64')
-rw-r--r-- | sys/arch/amd64/amd64/genassym.cf | 17 | ||||
-rw-r--r-- | sys/arch/amd64/amd64/locore.S | 4 | ||||
-rw-r--r-- | sys/arch/amd64/include/pte.h | 48 |
3 files changed, 41 insertions, 28 deletions
diff --git a/sys/arch/amd64/amd64/genassym.cf b/sys/arch/amd64/amd64/genassym.cf index da5462ebd46..52dbec0bdb5 100644 --- a/sys/arch/amd64/amd64/genassym.cf +++ b/sys/arch/amd64/amd64/genassym.cf @@ -1,4 +1,4 @@ -# $OpenBSD: genassym.cf,v 1.1 2004/01/28 01:39:38 mickey Exp $ +# $OpenBSD: genassym.cf,v 1.2 2004/02/07 17:00:12 miod Exp $ # Written by Artur Grabowski art@openbsd.org, Public Domain @@ -12,11 +12,13 @@ include <uvm/uvm.h> include <machine/trap.h> include <machine/pmap.h> +include <machine/pte.h> include <machine/vmparam.h> include <machine/intr.h> export SRUN +export L4_SLOT_KERNBASE define L3_SLOT_KERNBASE pl3_pi(KERNBASE) define L2_SLOT_KERNBASE pl2_pi(KERNBASE) define L1_SLOT_KERNBASE pl1_pi(KERNBASE) @@ -120,3 +122,16 @@ member ih_arg member ih_next member ih_level +# pte fields +export PG_V +export PG_KR +export PG_KW +export PG_N +export PG_NX + +# pmap constants +export PDIR_SLOT_PTE + +export NKL4_KIMG_ENTRIES +export NKL3_KIMG_ENTRIES +export NKL2_KIMG_ENTRIES diff --git a/sys/arch/amd64/amd64/locore.S b/sys/arch/amd64/amd64/locore.S index 1d9d74be9cb..c54c00bd384 100644 --- a/sys/arch/amd64/amd64/locore.S +++ b/sys/arch/amd64/amd64/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.2 2004/02/03 12:09:47 mickey Exp $ */ +/* $OpenBSD: locore.S,v 1.3 2004/02/07 17:00:12 miod Exp $ */ /* $NetBSD: locore.S,v 1.2 2003/04/26 19:34:45 fvdl Exp $ */ /* @@ -124,8 +124,6 @@ #include <sys/syscall.h> #include <machine/param.h> -#include <machine/pte.h> -#include <machine/pmap.h> #include <machine/segments.h> #include <machine/specialreg.h> #include <machine/trap.h> diff --git a/sys/arch/amd64/include/pte.h b/sys/arch/amd64/include/pte.h index bab70f51eae..842c49c4b8d 100644 --- a/sys/arch/amd64/include/pte.h +++ b/sys/arch/amd64/include/pte.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pte.h,v 1.2 2004/02/06 00:23:21 deraadt Exp $ */ +/* $OpenBSD: pte.h,v 1.3 2004/02/07 17:00:15 miod Exp $ */ /* $NetBSD: pte.h,v 1.1 2003/04/26 18:39:47 fvdl Exp $ */ /* @@ -87,10 +87,10 @@ typedef u_int64_t pt_entry_t; /* PTE */ #define NBPD_L3 (1ULL << L3_SHIFT) /* # bytes mapped by L3 ent (1G) */ #define NBPD_L4 (1ULL << L4_SHIFT) /* # bytes mapped by L4 ent (512G) */ -#define L4_MASK 0x0000ff8000000000 -#define L3_MASK 0x0000007fc0000000 -#define L2_MASK 0x000000003fe00000 -#define L1_MASK 0x00000000001ff000 +#define L4_MASK 0x0000ff8000000000UL +#define L3_MASK 0x0000007fc0000000UL +#define L2_MASK 0x000000003fe00000UL +#define L1_MASK 0x00000000001ff000UL #define L4_FRAME L4_MASK #define L3_FRAME (L4_FRAME|L3_MASK) @@ -101,30 +101,30 @@ typedef u_int64_t pt_entry_t; /* PTE */ * PDE/PTE bits. These are no different from their i386 counterparts. */ -#define PG_V 0x0000000000000001 /* valid */ -#define PG_RO 0x0000000000000000 /* read-only */ -#define PG_RW 0x0000000000000002 /* read-write */ -#define PG_u 0x0000000000000004 /* user accessible */ -#define PG_PROT 0x0000000000000006 -#define PG_N 0x0000000000000018 /* non-cacheable */ -#define PG_U 0x0000000000000020 /* used */ -#define PG_M 0x0000000000000040 /* modified */ -#define PG_PS 0x0000000000000080 /* 2MB page size */ -#define PG_G 0x0000000000000100 /* not flushed */ -#define PG_AVAIL1 0x0000000000000200 -#define PG_AVAIL2 0x0000000000000400 -#define PG_AVAIL3 0x0000000000000800 -#define PG_NX 0x8000000000000000 /* non-executable */ -#define PG_FRAME 0xfffffffffffff000 - -#define PG_LGFRAME 0xffffffffffc00000 /* large (2M) page frame mask */ +#define PG_V 0x0000000000000001UL /* valid */ +#define PG_RO 0x0000000000000000UL /* read-only */ +#define PG_RW 0x0000000000000002UL /* read-write */ +#define PG_u 0x0000000000000004UL /* user accessible */ +#define PG_PROT 0x0000000000000006UL +#define PG_N 0x0000000000000018UL /* non-cacheable */ +#define PG_U 0x0000000000000020UL /* used */ +#define PG_M 0x0000000000000040UL /* modified */ +#define PG_PS 0x0000000000000080UL /* 2MB page size */ +#define PG_G 0x0000000000000100UL /* not flushed */ +#define PG_AVAIL1 0x0000000000000200UL +#define PG_AVAIL2 0x0000000000000400UL +#define PG_AVAIL3 0x0000000000000800UL +#define PG_NX 0x8000000000000000UL /* non-executable */ +#define PG_FRAME 0xfffffffffffff000UL + +#define PG_LGFRAME 0xffffffffffc00000UL /* large (2M) page frame mask */ /* * short forms of protection codes */ -#define PG_KR 0x0000000000000000 /* kernel read-only */ -#define PG_KW 0x0000000000000002 /* kernel read-write */ +#define PG_KR 0x0000000000000000UL /* kernel read-only */ +#define PG_KW 0x0000000000000002UL /* kernel read-write */ /* * page protection exception bits |