Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _UAPI_ASM_X86_E820_H 2: #define _UAPI_ASM_X86_E820_H 3: #define E820MAP 0x2d0 /* our map */ 4: #define E820MAX 128 /* number of entries in E820MAP */ 5: 6: /* 7: * Legacy E820 BIOS limits us to 128 (E820MAX) nodes due to the 8: * constrained space in the zeropage. If we have more nodes than 9: * that, and if we've booted off EFI firmware, then the EFI tables 10: * passed us from the EFI firmware can list more nodes. Size our 11: * internal memory map tables to have room for these additional 12: * nodes, based on up to three entries per node for which the 13: * kernel was built: MAX_NUMNODES == (1 << CONFIG_NODES_SHIFT), 14: * plus E820MAX, allowing space for the possible duplicate E820 15: * entries that might need room in the same arrays, prior to the 16: * call to sanitize_e820_map() to remove duplicates. The allowance 17: * of three memory map entries per node is "enough" entries for 18: * the initial hardware platform motivating this mechanism to make 19: * use of additional EFI map entries. Future platforms may want 20: * to allow more than three entries per node or otherwise refine 21: * this size. 22: */ 23: 24: /* 25: * Odd: 'make headers_check' complains about numa.h if I try 26: * to collapse the next two #ifdef lines to a single line: 27: * #if defined(__KERNEL__) && defined(CONFIG_EFI) 28: */ 29: #ifndef __KERNEL__ 30: #define E820_X_MAX E820MAX 31: #endif 32: 33: #define E820NR 0x1e8 /* # entries in E820MAP */ 34: 35: #define E820_RAM 1 36: #define E820_RESERVED 2 37: #define E820_ACPI 3 38: #define E820_NVS 4 39: #define E820_UNUSABLE 5 40: 41: 42: /* 43: * reserved RAM used by kernel itself 44: * if CONFIG_INTEL_TXT is enabled, memory of this type will be 45: * included in the S3 integrity calculation and so should not include 46: * any memory that BIOS might alter over the S3 transition 47: */ 48: #define E820_RESERVED_KERN 128 49: 50: #ifndef __ASSEMBLY__ 51: #include <linux/types.h> 52: struct e820entry { 53: __u64 addr; /* start of memory segment */ 54: __u64 size; /* size of memory segment */ 55: __u32 type; /* type of memory segment */ 56: } __attribute__((packed)); 57: 58: struct e820map { 59: __u32 nr_map; 60: struct e820entry map[E820_X_MAX]; 61: }; 62: 63: #define ISA_START_ADDRESS 0xa0000 64: #define ISA_END_ADDRESS 0x100000 65: 66: #define BIOS_BEGIN 0x000a0000 67: #define BIOS_END 0x00100000 68: 69: #define BIOS_ROM_BASE 0xffe00000 70: #define BIOS_ROM_END 0xffffffff 71: 72: #endif /* __ASSEMBLY__ */ 73: 74: 75: #endif /* _UAPI_ASM_X86_E820_H */ 76: