pintos/src/threads/pte.h File Reference

#include "threads/vaddr.h"

Go to the source code of this file.

Defines

#define PTSHIFT   PGBITS
#define PTBITS   10
#define PTSPAN   (1 << PTBITS << PGBITS)
#define PTMASK   BITMASK(PTSHIFT, PTBITS)
#define PDSHIFT   (PTSHIFT + PTBITS)
#define PDBITS   10
#define PDMASK   BITMASK(PDSHIFT, PDBITS)
#define PCI_ADDR_ZONE_BEGIN   0xe0000000
#define PCI_ADDR_ZONE_END   0xe0800000
#define PCI_ADDR_ZONE_PDES   2
#define PCI_ADDR_ZONE_PAGES   (PCI_ADDR_ZONE_END-PCI_ADDR_ZONE_BEGIN)/PGSIZE
#define PTE_FLAGS   0x00000fff
#define PTE_ADDR   0xfffff000
#define PTE_AVL   0x00000e00
#define PTE_P   0x1
#define PTE_W   0x2
#define PTE_U   0x4
#define PTE_WT   (1 << 3)
#define PTE_CD   (1 << 4)
#define PTE_A   0x20
#define PTE_D   0x40
#define PTE_G   (1 << 8)

Functions

static unsigned pt_no (const void *va)
static uintptr_t pd_no (const void *va)
static uint32_t pde_create_user (uint32_t *pt)
static uint32_t pde_create_kernel (uint32_t *pt)
static uint32_tpde_get_pt (uint32_t pde)
static uint32_t pte_create_kernel (void *page, bool writable)
static uint32_t pte_create_user (void *page, bool writable)
static void * pte_get_page (uint32_t pte)


Define Documentation

#define PCI_ADDR_ZONE_BEGIN   0xe0000000

Definition at line 33 of file pte.h.

Referenced by pci_alloc_mem(), and pci_zone_init().

#define PCI_ADDR_ZONE_END   0xe0800000

Definition at line 34 of file pte.h.

#define PCI_ADDR_ZONE_PAGES   (PCI_ADDR_ZONE_END-PCI_ADDR_ZONE_BEGIN)/PGSIZE

Definition at line 36 of file pte.h.

Referenced by pci_alloc_mem().

#define PCI_ADDR_ZONE_PDES   2

Definition at line 35 of file pte.h.

Referenced by pci_zone_init().

#define PDBITS   10

Definition at line 29 of file pte.h.

#define PDMASK   BITMASK(PDSHIFT, PDBITS)

Definition at line 30 of file pte.h.

#define PDSHIFT   (PTSHIFT + PTBITS)

Definition at line 28 of file pte.h.

Referenced by pd_no().

#define PTBITS   10

Definition at line 23 of file pte.h.

#define PTE_A   0x20

Definition at line 78 of file pte.h.

Referenced by pagedir_is_accessed(), and pagedir_set_accessed().

#define PTE_ADDR   0xfffff000

Definition at line 71 of file pte.h.

Referenced by pde_get_pt(), and pte_get_page().

#define PTE_AVL   0x00000e00

Definition at line 72 of file pte.h.

#define PTE_CD   (1 << 4)

Definition at line 77 of file pte.h.

Referenced by pci_alloc_mem().

#define PTE_D   0x40

Definition at line 79 of file pte.h.

Referenced by pagedir_is_dirty(), and pagedir_set_dirty().

#define PTE_FLAGS   0x00000fff

Definition at line 70 of file pte.h.

#define PTE_G   (1 << 8)

Definition at line 80 of file pte.h.

Referenced by pde_create_kernel(), and pte_create_kernel().

#define PTE_P   0x1

#define PTE_U   0x4

Definition at line 75 of file pte.h.

Referenced by pde_create_user(), and pte_create_user().

#define PTE_W   0x2

#define PTE_WT   (1 << 3)

Definition at line 76 of file pte.h.

#define PTMASK   BITMASK(PTSHIFT, PTBITS)

Definition at line 25 of file pte.h.

Referenced by pt_no().

#define PTSHIFT   PGBITS

Definition at line 22 of file pte.h.

Referenced by pagedir_set_page(), and pt_no().

#define PTSPAN   (1 << PTBITS << PGBITS)

Definition at line 24 of file pte.h.


Function Documentation

static uintptr_t pd_no ( const void *  va  )  [inline, static]

Definition at line 46 of file pte.h.

References PDSHIFT.

Referenced by lookup_page(), pagedir_destroy(), paging_init(), pci_alloc_mem(), and pci_zone_init().

static uint32_t pde_create_kernel ( uint32_t pt  )  [inline, static]

Definition at line 89 of file pte.h.

References ASSERT, pg_ofs(), PTE_G, PTE_P, PTE_W, and vtop().

Referenced by paging_init(), and pci_zone_init().

static uint32_t pde_create_user ( uint32_t pt  )  [inline, static]

Definition at line 83 of file pte.h.

References ASSERT, pg_ofs(), PTE_P, PTE_U, PTE_W, and vtop().

Referenced by lookup_page().

static uint32_t* pde_get_pt ( uint32_t  pde  )  [inline, static]

Definition at line 96 of file pte.h.

References ASSERT, PTE_ADDR, PTE_P, and ptov().

Referenced by lookup_page(), and pagedir_destroy().

static unsigned pt_no ( const void *  va  )  [inline, static]

Definition at line 41 of file pte.h.

References PTMASK, and PTSHIFT.

Referenced by lookup_page(), and paging_init().

static uint32_t pte_create_kernel ( void *  page,
bool  writable 
) [inline, static]

Definition at line 105 of file pte.h.

References ASSERT, pg_ofs(), PTE_G, PTE_P, PTE_W, and vtop().

Referenced by paging_init().

static uint32_t pte_create_user ( void *  page,
bool  writable 
) [inline, static]

Definition at line 114 of file pte.h.

References ASSERT, pg_ofs(), PTE_P, PTE_U, PTE_W, and vtop().

Referenced by pagedir_set_page().

static void* pte_get_page ( uint32_t  pte  )  [inline, static]

Definition at line 121 of file pte.h.

References PTE_ADDR, and ptov().

Referenced by pagedir_destroy(), and pagedir_get_page().


Generated on Mon Jan 10 16:43:58 2011 for Pintos by  doxygen 1.5.6