xv6/mmu.h File Reference

Go to the source code of this file.

Data Structures

struct  segdesc
struct  taskstate
struct  gatedesc

Defines

#define FL_CF   0x00000001
#define FL_PF   0x00000004
#define FL_AF   0x00000010
#define FL_ZF   0x00000040
#define FL_SF   0x00000080
#define FL_TF   0x00000100
#define FL_IF   0x00000200
#define FL_DF   0x00000400
#define FL_OF   0x00000800
#define FL_IOPL_MASK   0x00003000
#define FL_IOPL_0   0x00000000
#define FL_IOPL_1   0x00001000
#define FL_IOPL_2   0x00002000
#define FL_IOPL_3   0x00003000
#define FL_NT   0x00004000
#define FL_RF   0x00010000
#define FL_VM   0x00020000
#define FL_AC   0x00040000
#define FL_VIF   0x00080000
#define FL_VIP   0x00100000
#define FL_ID   0x00200000
#define SEG(type, base, lim, dpl)
#define SEG16(type, base, lim, dpl)
#define DPL_USER   0x3
#define STA_X   0x8
#define STA_E   0x4
#define STA_C   0x4
#define STA_W   0x2
#define STA_R   0x2
#define STA_A   0x1
#define STS_T16A   0x1
#define STS_LDT   0x2
#define STS_T16B   0x3
#define STS_CG16   0x4
#define STS_TG   0x5
#define STS_IG16   0x6
#define STS_TG16   0x7
#define STS_T32A   0x9
#define STS_T32B   0xB
#define STS_CG32   0xC
#define STS_IG32   0xE
#define STS_TG32   0xF
#define SETGATE(gate, istrap, sel, off, d)


Define Documentation

#define DPL_USER   0x3

Definition at line 55 of file mmu.h.

Referenced by trap(), tvinit(), usegment(), and userinit().

#define FL_AC   0x00040000

Definition at line 22 of file mmu.h.

#define FL_AF   0x00000010

Definition at line 7 of file mmu.h.

#define FL_CF   0x00000001

Definition at line 5 of file mmu.h.

#define FL_DF   0x00000400

Definition at line 12 of file mmu.h.

#define FL_ID   0x00200000

Definition at line 25 of file mmu.h.

#define FL_IF   0x00000200

Definition at line 11 of file mmu.h.

Referenced by cpunum(), popcli(), pushcli(), sched(), and userinit().

#define FL_IOPL_0   0x00000000

Definition at line 15 of file mmu.h.

#define FL_IOPL_1   0x00001000

Definition at line 16 of file mmu.h.

#define FL_IOPL_2   0x00002000

Definition at line 17 of file mmu.h.

#define FL_IOPL_3   0x00003000

Definition at line 18 of file mmu.h.

#define FL_IOPL_MASK   0x00003000

Definition at line 14 of file mmu.h.

#define FL_NT   0x00004000

Definition at line 19 of file mmu.h.

#define FL_OF   0x00000800

Definition at line 13 of file mmu.h.

#define FL_PF   0x00000004

Definition at line 6 of file mmu.h.

#define FL_RF   0x00010000

Definition at line 20 of file mmu.h.

#define FL_SF   0x00000080

Definition at line 9 of file mmu.h.

#define FL_TF   0x00000100

Definition at line 10 of file mmu.h.

#define FL_VIF   0x00080000

Definition at line 23 of file mmu.h.

#define FL_VIP   0x00100000

Definition at line 24 of file mmu.h.

#define FL_VM   0x00020000

Definition at line 21 of file mmu.h.

#define FL_ZF   0x00000040

Definition at line 8 of file mmu.h.

#define SEG ( type,
base,
lim,
dpl   ) 

Value:

(struct segdesc)    \
{ ((lim) >> 12) & 0xffff, (uint)(base) & 0xffff,      \
  ((uint)(base) >> 16) & 0xff, type, 1, dpl, 1,       \
  (uint)(lim) >> 28, 0, 0, 1, 1, (uint)(base) >> 24 }

Definition at line 45 of file mmu.h.

Referenced by ksegment(), and usegment().

#define SEG16 ( type,
base,
lim,
dpl   ) 

Value:

(struct segdesc)  \
{ (lim) & 0xffff, (uint)(base) & 0xffff,              \
  ((uint)(base) >> 16) & 0xff, type, 1, dpl, 1,       \
  (uint)(lim) >> 16, 0, 0, 1, 0, (uint)(base) >> 24 }

Definition at line 50 of file mmu.h.

Referenced by usegment().

#define SETGATE ( gate,
istrap,
sel,
off,
 ) 

Value:

{                                                         \
  (gate).off_15_0 = (uint) (off) & 0xffff;                \
  (gate).cs = (sel);                                      \
  (gate).args = 0;                                        \
  (gate).rsv1 = 0;                                        \
  (gate).type = (istrap) ? STS_TG32 : STS_IG32;           \
  (gate).s = 0;                                           \
  (gate).dpl = (d);                                       \
  (gate).p = 1;                                           \
  (gate).off_31_16 = (uint) (off) >> 16;                  \
}

Definition at line 141 of file mmu.h.

Referenced by tvinit().

#define STA_A   0x1

Definition at line 63 of file mmu.h.

#define STA_C   0x4

Definition at line 60 of file mmu.h.

#define STA_E   0x4

Definition at line 59 of file mmu.h.

#define STA_R   0x2

Definition at line 62 of file mmu.h.

#define STA_W   0x2

Definition at line 61 of file mmu.h.

#define STA_X   0x8

Definition at line 58 of file mmu.h.

#define STS_CG16   0x4

Definition at line 69 of file mmu.h.

#define STS_CG32   0xC

Definition at line 75 of file mmu.h.

#define STS_IG16   0x6

Definition at line 71 of file mmu.h.

#define STS_IG32   0xE

Definition at line 76 of file mmu.h.

#define STS_LDT   0x2

Definition at line 67 of file mmu.h.

#define STS_T16A   0x1

Definition at line 66 of file mmu.h.

#define STS_T16B   0x3

Definition at line 68 of file mmu.h.

#define STS_T32A   0x9

Definition at line 73 of file mmu.h.

Referenced by usegment().

#define STS_T32B   0xB

Definition at line 74 of file mmu.h.

#define STS_TG   0x5

Definition at line 70 of file mmu.h.

#define STS_TG16   0x7

Definition at line 72 of file mmu.h.

#define STS_TG32   0xF

Definition at line 77 of file mmu.h.


Generated on Fri Jan 7 12:25:49 2011 for xv6 by  doxygen 1.5.6