summaryrefslogtreecommitdiff
path: root/memlayout.h
blob: 87818d3d2ecc77f1dbc9426c72e2cc449b2c14ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Memory layout

#define EXTMEM  0x100000            // Start of extended memory
#define PHYSTOP 0xE000000           // Top physical memory
#define DEVSPACE 0xFE000000         // Other devices are top of 32-bit address space
#define DEVSPACETOP 0x100000000

// Key addresses for address space layout (see kmap in vm.c for layout)
#define KERNBASE  0xFFFFFF0000000000  // First kernel virtual address
#define KERNLINK (KERNBASE+EXTMEM)  // Address where kernel is linked

#define V2P(a) (((uint64) (a)) - KERNBASE)
#define P2V(a) ((void *)(((char *) (a)) + KERNBASE))

#define V2P_WO(x) ((x) - KERNBASE)    // same as V2P, but without casts
#define P2V_WO(x) ((x) + KERNBASE)    // same as P2V, but without casts