]> git.lizzy.rs Git - plan9front.git/blob - sys/src/boot/efi/mem.h
audiohda: fix syntax error
[plan9front.git] / sys / src / boot / efi / mem.h
1 /*
2  * Memory and machine-specific definitions.  Used in C and assembler.
3  */
4
5 /*
6  * Sizes
7  */
8 #define BI2BY           8                       /* bits per byte */
9 #define BI2WD           32                      /* bits per word */
10 #define BY2WD           4                       /* bytes per word */
11 #define BY2PG           4096                    /* bytes per page */
12 #define WD2PG           (BY2PG/BY2WD)           /* words per page */
13 #define PGSHIFT         12                      /* log(BY2PG) */
14 #define PGROUND(s)      (((s)+(BY2PG-1))&~(BY2PG-1))
15
16 /*
17  * Fundamental addresses
18  */
19 #define CONFADDR        0x1200          /* info passed from boot loader */
20 #define BIOSXCHG        0x6000          /* To exchange data with the BIOS */
21
22 #define SELGDT  (0<<3)  /* selector is in gdt */
23 #define SELLDT  (1<<3)  /* selector is in ldt */
24
25 #define SELECTOR(i, t, p)       (((i)<<3) | (t) | (p))
26
27 /*
28  *  fields in segment descriptors
29  */
30 #define SEGDATA (0x10<<8)       /* data/stack segment */
31 #define SEGEXEC (0x18<<8)       /* executable segment */
32 #define SEGTSS  (0x9<<8)        /* TSS segment */
33 #define SEGCG   (0x0C<<8)       /* call gate */
34 #define SEGIG   (0x0E<<8)       /* interrupt gate */
35 #define SEGTG   (0x0F<<8)       /* trap gate */
36 #define SEGLDT  (0x02<<8)       /* local descriptor table */
37 #define SEGTYPE (0x1F<<8)
38
39 #define SEGP    (1<<15)         /* segment present */
40 #define SEGPL(x) ((x)<<13)      /* priority level */
41 #define SEGB    (1<<22)         /* granularity 1==4k (for expand-down) */
42 #define SEGD    (1<<22)         /* default 1==32bit (for code) */
43 #define SEGE    (1<<10)         /* expand down */
44 #define SEGW    (1<<9)          /* writable (for data/stack) */
45 #define SEGR    (1<<9)          /* readable (for code) */
46 #define SEGL    (1<<21)         /* 64 bit */
47 #define SEGG    (1<<23)         /* granularity 1==4k (for other) */