diff options
| author | Frans Kaashoek <kaashoek@mit.edu> | 2018-08-30 13:14:01 -0400 | 
|---|---|---|
| committer | Frans Kaashoek <kaashoek@mit.edu> | 2018-08-30 13:14:01 -0400 | 
| commit | 210a0f0b30eb1af49b6ed42339b1fcc8582ba653 (patch) | |
| tree | a24d804200e1a800ed5c0dcb540ea3936bd9f14d | |
| parent | b2ca8e3e23e583991b4d8285be6569fb0dcf2495 (diff) | |
| download | xv6-labs-210a0f0b30eb1af49b6ed42339b1fcc8582ba653.tar.gz xv6-labs-210a0f0b30eb1af49b6ed42339b1fcc8582ba653.tar.bz2 xv6-labs-210a0f0b30eb1af49b6ed42339b1fcc8582ba653.zip | |
Remove unused flags (thanks Wolfgang Keller)
| -rw-r--r-- | asm.h | 3 | ||||
| -rw-r--r-- | mmu.h | 51 | 
2 files changed, 4 insertions, 50 deletions
| @@ -14,8 +14,5 @@                  (0xC0 | (((lim) >> 28) & 0xf)), (((base) >> 24) & 0xff)  #define STA_X     0x8       // Executable segment -#define STA_E     0x4       // Expand down (non-executable segments) -#define STA_C     0x4       // Conforming code segment (executable only)  #define STA_W     0x2       // Writeable (non-executable segments)  #define STA_R     0x2       // Readable (executable segments) -#define STA_A     0x1       // Accessed @@ -2,39 +2,11 @@  // x86 memory management unit (MMU).  // Eflags register -#define FL_CF           0x00000001      // Carry Flag -#define FL_PF           0x00000004      // Parity Flag -#define FL_AF           0x00000010      // Auxiliary carry Flag -#define FL_ZF           0x00000040      // Zero Flag -#define FL_SF           0x00000080      // Sign Flag -#define FL_TF           0x00000100      // Trap Flag  #define FL_IF           0x00000200      // Interrupt Enable -#define FL_DF           0x00000400      // Direction Flag -#define FL_OF           0x00000800      // Overflow Flag -#define FL_IOPL_MASK    0x00003000      // I/O Privilege Level bitmask -#define FL_IOPL_0       0x00000000      //   IOPL == 0 -#define FL_IOPL_1       0x00001000      //   IOPL == 1 -#define FL_IOPL_2       0x00002000      //   IOPL == 2 -#define FL_IOPL_3       0x00003000      //   IOPL == 3 -#define FL_NT           0x00004000      // Nested Task -#define FL_RF           0x00010000      // Resume Flag -#define FL_VM           0x00020000      // Virtual 8086 mode -#define FL_AC           0x00040000      // Alignment Check -#define FL_VIF          0x00080000      // Virtual Interrupt Flag -#define FL_VIP          0x00100000      // Virtual Interrupt Pending -#define FL_ID           0x00200000      // ID flag  // Control Register flags  #define CR0_PE          0x00000001      // Protection Enable -#define CR0_MP          0x00000002      // Monitor coProcessor -#define CR0_EM          0x00000004      // Emulation -#define CR0_TS          0x00000008      // Task Switched -#define CR0_ET          0x00000010      // Extension Type -#define CR0_NE          0x00000020      // Numeric Errror  #define CR0_WP          0x00010000      // Write Protect -#define CR0_AM          0x00040000      // Alignment Mask -#define CR0_NW          0x20000000      // Not Writethrough -#define CR0_CD          0x40000000      // Cache Disable  #define CR0_PG          0x80000000      // Paging  #define CR4_PSE         0x00000010      // Page size extension @@ -82,23 +54,11 @@ struct segdesc {  // Application segment type bits  #define STA_X       0x8     // Executable segment -#define STA_E       0x4     // Expand down (non-executable segments) -#define STA_C       0x4     // Conforming code segment (executable only)  #define STA_W       0x2     // Writeable (non-executable segments)  #define STA_R       0x2     // Readable (executable segments) -#define STA_A       0x1     // Accessed  // System segment type bits -#define STS_T16A    0x1     // Available 16-bit TSS -#define STS_LDT     0x2     // Local Descriptor Table -#define STS_T16B    0x3     // Busy 16-bit TSS -#define STS_CG16    0x4     // 16-bit Call Gate -#define STS_TG      0x5     // Task Gate / Coum Transmitions -#define STS_IG16    0x6     // 16-bit Interrupt Gate -#define STS_TG16    0x7     // 16-bit Trap Gate  #define STS_T32A    0x9     // Available 32-bit TSS -#define STS_T32B    0xB     // Busy 32-bit TSS -#define STS_CG32    0xC     // 32-bit Call Gate  #define STS_IG32    0xE     // 32-bit Interrupt Gate  #define STS_TG32    0xF     // 32-bit Trap Gate @@ -124,7 +84,6 @@ struct segdesc {  #define NPTENTRIES      1024    // # PTEs per page table  #define PGSIZE          4096    // bytes mapped by a page -#define PGSHIFT         12      // log2(PGSIZE)  #define PTXSHIFT        12      // offset of PTX in a linear address  #define PDXSHIFT        22      // offset of PDX in a linear address @@ -135,12 +94,7 @@ struct segdesc {  #define PTE_P           0x001   // Present  #define PTE_W           0x002   // Writeable  #define PTE_U           0x004   // User -#define PTE_PWT         0x008   // Write-Through -#define PTE_PCD         0x010   // Cache-Disable -#define PTE_A           0x020   // Accessed -#define PTE_D           0x040   // Dirty  #define PTE_PS          0x080   // Page Size -#define PTE_MBZ         0x180   // Bits must be zero  // Address in page table or page directory entry  #define PTE_ADDR(pte)   ((uint)(pte) & ~0xFFF) @@ -197,7 +151,7 @@ struct gatedesc {    uint cs : 16;         // code segment selector    uint args : 5;        // # args, 0 for interrupt/trap gates    uint rsv1 : 3;        // reserved(should be zero I guess) -  uint type : 4;        // type(STS_{TG,IG32,TG32}) +  uint type : 4;        // type(STS_{IG32,TG32})    uint s : 1;           // must be 0 (system)    uint dpl : 2;         // descriptor(meaning new) privilege level    uint p : 1;           // Present @@ -226,3 +180,6 @@ struct gatedesc {  }  #endif + +//PAGEBREAK! +// Blank page. | 
