Module Name: src Committed By: thorpej Date: Mon Jan 1 22:47:58 UTC 2024
Modified Files: src/sys/arch/m68k/include: pte_motorola.h Log Message: Define PTE used in the pmap module int terms of the bit definitions in mmu_{51,40}.h. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/m68k/include/pte_motorola.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/m68k/include/pte_motorola.h diff -u src/sys/arch/m68k/include/pte_motorola.h:1.9 src/sys/arch/m68k/include/pte_motorola.h:1.10 --- src/sys/arch/m68k/include/pte_motorola.h:1.9 Wed Dec 27 03:03:41 2023 +++ src/sys/arch/m68k/include/pte_motorola.h Mon Jan 1 22:47:58 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: pte_motorola.h,v 1.9 2023/12/27 03:03:41 thorpej Exp $ */ +/* $NetBSD: pte_motorola.h,v 1.10 2024/01/01 22:47:58 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -56,55 +56,63 @@ typedef u_int pt_entry_t; /* page table #define PG_SHIFT PGSHIFT -#define SG_V 0x00000002 /* segment is valid */ -#define SG_NV 0x00000000 -#define SG_PROT 0x00000004 /* access protection mask */ -#define SG_RO 0x00000004 +/* + * "Segment" Table Entry bits, defined in terms of the 68851 bits + * (compatible 68040 bits noted in comments). + */ +#define SG_V DT51_SHORT /* == UTE40_RESIDENT */ +#define SG_NV DT51_INVALID /* == UTE40_INVALID */ +#define SG_RO DTE51_WP /* == UTE40_W */ #define SG_RW 0x00000000 -#define SG_U 0x00000008 /* modified bit (68040) */ -#define SG_FRAME ((~0) << PG_SHIFT) +#define SG_PROT DTE51_WP +#define SG_U DTE51_U /* == UTE40_U */ +#define SG_FRAME ((~0U) << PG_SHIFT) #define SG_ISHIFT ((PG_SHIFT << 1) - 2) /* 24 or 22 */ -#define SG_IMASK ((~0) << SG_ISHIFT) +#define SG_IMASK ((~0U) << SG_ISHIFT) #define SG_PSHIFT PG_SHIFT -#define SG_PMASK (((~0) << SG_PSHIFT) & ~SG_IMASK) +#define SG_PMASK (((~0U) << SG_PSHIFT) & ~SG_IMASK) /* 68040 additions */ -#define SG4_MASK1 0xfe000000 +#define SG4_MASK1 0xfe000000U #define SG4_SHIFT1 25 -#define SG4_MASK2 0x01fc0000 +#define SG4_MASK2 0x01fc0000U #define SG4_SHIFT2 18 -#define SG4_MASK3 (((~0) << PG_SHIFT) & ~(SG4_MASK1 | SG4_MASK2)) +#define SG4_MASK3 (((~0U) << PG_SHIFT) & ~(SG4_MASK1 | SG4_MASK2)) #define SG4_SHIFT3 PG_SHIFT #define SG4_ADDR1 0xfffffe00 -#define SG4_ADDR2 ((~0) << (20 - PG_SHIFT)) +#define SG4_ADDR2 ((~0U) << (20 - PG_SHIFT)) #define SG4_LEV1SIZE 128 #define SG4_LEV2SIZE 128 -#define SG4_LEV3SIZE (1 << (SG4_SHIFT2 - PG_SHIFT)) /* 64 or 32 */ +#define SG4_LEV3SIZE (1U << (SG4_SHIFT2 - PG_SHIFT)) /* 64 or 32 */ -#define PG_V 0x00000001 -#define PG_NV 0x00000000 -#define PG_PROT 0x00000004 -#define PG_U 0x00000008 -#define PG_M 0x00000010 -#define PG_W 0x00000100 -#define PG_RO 0x00000004 +/* + * Page Table Entry bits, defined in terms of the 68851 bits + * (compatible 68040 bits noted in comments). + */ +#define PG_V DT51_PAGE /* == PTE40_RESIDENT */ +#define PG_NV DT51_INVALID /* == PTE40_INVALID */ +#define PG_RO PTE51_WP /* == PTE40_W */ #define PG_RW 0x00000000 -#define PG_FRAME ((~0) << PG_SHIFT) -#define PG_CI 0x00000040 -#define PG_PFNUM(x) (((x) & PG_FRAME) >> PG_SHIFT) +#define PG_PROT PG_RO +#define PG_U PTE51_U /* == PTE40_U */ +#define PG_M PTE51_M /* == PTE40_M */ +#define PG_CI PTE51_CI +#define PG_W __BIT(8) /* 851 unused bit XXX040 PTE40_U0 */ +#define PG_FRAME ((~0U) << PG_SHIFT) +#define PG_PFNUM(x) (((uintptr_t)(x) & PG_FRAME) >> PG_SHIFT) /* 68040 additions */ -#define PG_CMASK 0x00000060 /* cache mode mask */ -#define PG_CWT 0x00000000 /* writethrough caching */ -#define PG_CCB 0x00000020 /* copyback caching */ -#define PG_CIS 0x00000040 /* cache inhibited serialized */ -#define PG_CIN 0x00000060 /* cache inhibited nonserialized */ -#define PG_SO 0x00000080 /* supervisor only */ +#define PG_CMASK PTE40_CM /* cache mode mask */ +#define PG_CWT PTE40_CM_WT /* writethrough caching */ +#define PG_CCB PTE40_CM_CB /* copyback caching */ +#define PG_CIS PTE40_CM_NC_SER /* cache inhibited serialized */ +#define PG_CIN PTE40_CM_NC /* cache inhibited nonserialized */ +#define PG_SO PTE40_S /* supervisor only */ #define M68K_STSIZE (MAXUL2SIZE * SG4_LEV2SIZE * sizeof(st_entry_t)) /* user process segment table size */ -#define M68K_MAX_PTSIZE (1 << (32 - PG_SHIFT + 2)) /* max size of UPT */ -#define M68K_MAX_KPTSIZE (M68K_MAX_PTSIZE >> 2) /* max memory to allocate to KPT */ +#define M68K_MAX_PTSIZE (1U << (32 - PG_SHIFT + 2)) /* max size of UPT */ +#define M68K_MAX_KPTSIZE (M68K_MAX_PTSIZE >> 2) /* max memory to allocate to KPT */ #define M68K_PTBASE 0x10000000 /* UPT map base address */ #define M68K_PTMAXSIZE 0x70000000 /* UPT map maximum size */