Max OS 0.3
Loading...
Searching...
No Matches
multiboot.h
1/* multiboot2.h - Multiboot 2 header file. */
2/* Copyright (C) 1999,2003,2007,2008,2009,2010 Free Software Foundation, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to
6 * deal in the Software without restriction, including without limitation the
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 * sell copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ANY
17 * DEVELOPER OR DISTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
19 * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 */
21
22#ifndef MULTIBOOT_HEADER
23#define MULTIBOOT_HEADER 1
24
25/* How many bytes from the start of the file we search for the header. */
26#define MULTIBOOT_SEARCH 32768
27#define MULTIBOOT_HEADER_ALIGN 8
28
29/* The magic field should contain this. */
30#define MULTIBOOT2_HEADER_MAGIC 0xe85250d6
31
32/* This should be in %eax. */
33#define MULTIBOOT2_BOOTLOADER_MAGIC 0x36d76289
34
35/* Alignment of multiboot modules. */
36#define MULTIBOOT_MOD_ALIGN 0x00001000
37
38/* Alignment of the multiboot info structure. */
39#define MULTIBOOT_INFO_ALIGN 0x00000008
40
41/* Flags set in the 'flags' member of the multiboot header. */
42
43#define MULTIBOOT_TAG_ALIGN 8
44#define MULTIBOOT_TAG_TYPE_END 0
45#define MULTIBOOT_TAG_TYPE_CMDLINE 1
46#define MULTIBOOT_TAG_TYPE_BOOT_LOADER_NAME 2
47#define MULTIBOOT_TAG_TYPE_MODULE 3
48#define MULTIBOOT_TAG_TYPE_BASIC_MEMINFO 4
49#define MULTIBOOT_TAG_TYPE_BOOTDEV 5
50#define MULTIBOOT_TAG_TYPE_MMAP 6
51#define MULTIBOOT_TAG_TYPE_VBE 7
52#define MULTIBOOT_TAG_TYPE_FRAMEBUFFER 8
53#define MULTIBOOT_TAG_TYPE_ELF_SECTIONS 9
54#define MULTIBOOT_TAG_TYPE_APM 10
55#define MULTIBOOT_TAG_TYPE_EFI32 11
56#define MULTIBOOT_TAG_TYPE_EFI64 12
57#define MULTIBOOT_TAG_TYPE_SMBIOS 13
58#define MULTIBOOT_TAG_TYPE_ACPI_OLD 14
59#define MULTIBOOT_TAG_TYPE_ACPI_NEW 15
60#define MULTIBOOT_TAG_TYPE_NETWORK 16
61#define MULTIBOOT_TAG_TYPE_EFI_MMAP 17
62#define MULTIBOOT_TAG_TYPE_EFI_BS 18
63#define MULTIBOOT_TAG_TYPE_EFI32_IH 19
64#define MULTIBOOT_TAG_TYPE_EFI64_IH 20
65#define MULTIBOOT_TAG_TYPE_LOAD_BASE_ADDR 21
66
67#define MULTIBOOT_HEADER_TAG_END 0
68#define MULTIBOOT_HEADER_TAG_INFORMATION_REQUEST 1
69#define MULTIBOOT_HEADER_TAG_ADDRESS 2
70#define MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS 3
71#define MULTIBOOT_HEADER_TAG_CONSOLE_FLAGS 4
72#define MULTIBOOT_HEADER_TAG_FRAMEBUFFER 5
73#define MULTIBOOT_HEADER_TAG_MODULE_ALIGN 6
74#define MULTIBOOT_HEADER_TAG_EFI_BS 7
75#define MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI32 8
76#define MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI64 9
77#define MULTIBOOT_HEADER_TAG_RELOCATABLE 10
78
79#define MULTIBOOT_ARCHITECTURE_I386 0
80#define MULTIBOOT_ARCHITECTURE_MIPS32 4
81#define MULTIBOOT_HEADER_TAG_OPTIONAL 1
82
83#define MULTIBOOT_LOAD_PREFERENCE_NONE 0
84#define MULTIBOOT_LOAD_PREFERENCE_LOW 1
85#define MULTIBOOT_LOAD_PREFERENCE_HIGH 2
86
87#define MULTIBOOT_CONSOLE_FLAGS_CONSOLE_REQUIRED 1
88#define MULTIBOOT_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED 2
89
90#ifndef ASM_FILE
91
92typedef unsigned char multiboot_uint8_t;
93typedef unsigned short multiboot_uint16_t;
94typedef unsigned int multiboot_uint32_t;
95typedef unsigned long long multiboot_uint64_t;
96
102 multiboot_uint32_t magic;
103 multiboot_uint32_t architecture;
104 multiboot_uint32_t header_length;
105 multiboot_uint32_t checksum;
106};
107
113 multiboot_uint16_t type;
114 multiboot_uint16_t flags;
115 multiboot_uint32_t size;
116};
117
123 multiboot_uint16_t type;
124 multiboot_uint16_t flags;
125 multiboot_uint32_t size;
126 multiboot_uint32_t requests[0];
127};
128
134 multiboot_uint16_t type;
135 multiboot_uint16_t flags;
136 multiboot_uint32_t size;
137 multiboot_uint32_t header_addr;
138 multiboot_uint32_t load_addr;
139 multiboot_uint32_t load_end_addr;
140 multiboot_uint32_t bss_end_addr;
141};
142
148 multiboot_uint16_t type;
149 multiboot_uint16_t flags;
150 multiboot_uint32_t size;
151 multiboot_uint32_t entry_addr;
152};
153
159 multiboot_uint16_t type;
160 multiboot_uint16_t flags;
161 multiboot_uint32_t size;
162 multiboot_uint32_t console_flags;
163};
164
170 multiboot_uint16_t type;
171 multiboot_uint16_t flags;
172 multiboot_uint32_t size;
173 multiboot_uint32_t width;
174 multiboot_uint32_t height;
175 multiboot_uint32_t depth;
176};
177
183 multiboot_uint16_t type;
184 multiboot_uint16_t flags;
185 multiboot_uint32_t size;
186};
187
193 multiboot_uint16_t type;
194 multiboot_uint16_t flags;
195 multiboot_uint32_t size;
196 multiboot_uint32_t min_addr;
197 multiboot_uint32_t max_addr;
198 multiboot_uint32_t align;
199 multiboot_uint32_t preference;
200};
201
207 multiboot_uint8_t red;
208 multiboot_uint8_t green;
209 multiboot_uint8_t blue;
210};
211
212#define MULTIBOOT_MEMORY_AVAILABLE 1
213#define MULTIBOOT_MEMORY_RESERVED 2
214#define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3
215#define MULTIBOOT_MEMORY_NVS 4
216#define MULTIBOOT_MEMORY_BADRAM 5
217
223 multiboot_uint64_t addr;
224 multiboot_uint64_t len;
225 multiboot_uint32_t type;
226 multiboot_uint32_t zero;
227};
229
235 multiboot_uint32_t type;
236 multiboot_uint32_t size;
237};
238
244 multiboot_uint32_t type;
245 multiboot_uint32_t size;
246 char string[0];
247};
248
254 multiboot_uint32_t type;
255 multiboot_uint32_t size;
256 multiboot_uint32_t mod_start;
257 multiboot_uint32_t mod_end;
258 char cmdline[0];
259};
260
266 multiboot_uint32_t type;
267 multiboot_uint32_t size;
268 multiboot_uint32_t mem_lower;
269 multiboot_uint32_t mem_upper;
270};
271
277 multiboot_uint32_t type;
278 multiboot_uint32_t size;
279 multiboot_uint32_t biosdev;
280 multiboot_uint32_t slice;
281 multiboot_uint32_t part;
282};
283
289 multiboot_uint32_t type;
290 multiboot_uint32_t size;
291 multiboot_uint32_t entry_size;
292 multiboot_uint32_t entry_version;
294};
295
301 multiboot_uint8_t external_specification[512];
302};
303
309 multiboot_uint8_t external_specification[256];
310};
311
317 multiboot_uint32_t type;
318 multiboot_uint32_t size;
319
320 multiboot_uint16_t vbe_mode;
321 multiboot_uint16_t vbe_interface_seg;
322 multiboot_uint16_t vbe_interface_off;
323 multiboot_uint16_t vbe_interface_len;
324
327};
328
329#define MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED 0
330#define MULTIBOOT_FRAMEBUFFER_TYPE_RGB 1
331#define MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT 2
332
338 multiboot_uint32_t type;
339 multiboot_uint32_t size;
340
341 multiboot_uint64_t framebuffer_addr;
342 multiboot_uint32_t framebuffer_pitch;
343 multiboot_uint32_t framebuffer_width;
344 multiboot_uint32_t framebuffer_height;
345 multiboot_uint8_t framebuffer_bpp;
346 multiboot_uint8_t framebuffer_type;
347 multiboot_uint16_t reserved;
348};
349
358
359 union {
360 struct {
362 struct multiboot_color framebuffer_palette[0];
363 };
364 struct {
366 multiboot_uint8_t framebuffer_red_mask_size;
368 multiboot_uint8_t framebuffer_green_mask_size;
370 multiboot_uint8_t framebuffer_blue_mask_size;
371 };
372 };
373};
374
380 multiboot_uint32_t type;
381 multiboot_uint32_t size;
382 multiboot_uint32_t num;
383 multiboot_uint32_t entsize;
384 multiboot_uint32_t shndx;
385 char sections[0];
386};
387
393 multiboot_uint32_t type;
394 multiboot_uint32_t size;
395 multiboot_uint16_t version;
396 multiboot_uint16_t cseg;
397 multiboot_uint32_t offset;
398 multiboot_uint16_t cseg_16;
399 multiboot_uint16_t dseg;
400 multiboot_uint16_t flags;
401 multiboot_uint16_t cseg_len;
402 multiboot_uint16_t cseg_16_len;
403 multiboot_uint16_t dseg_len;
404};
405
411 multiboot_uint32_t type;
412 multiboot_uint32_t size;
413 multiboot_uint32_t pointer;
414};
415
421 multiboot_uint32_t type;
422 multiboot_uint32_t size;
423 multiboot_uint64_t pointer;
424};
425
431 multiboot_uint32_t type;
432 multiboot_uint32_t size;
433 multiboot_uint8_t major;
434 multiboot_uint8_t minor;
435 multiboot_uint8_t reserved[6];
436 multiboot_uint8_t tables[0];
437};
438
444 multiboot_uint32_t type;
445 multiboot_uint32_t size;
446 multiboot_uint8_t rsdp[0];
447};
448
454 multiboot_uint32_t type;
455 multiboot_uint32_t size;
456 multiboot_uint8_t rsdp[0];
457};
458
464 multiboot_uint32_t type;
465 multiboot_uint32_t size;
466 multiboot_uint8_t dhcpack[0];
467};
468
474 multiboot_uint32_t type;
475 multiboot_uint32_t size;
476 multiboot_uint32_t descr_size;
477 multiboot_uint32_t descr_vers;
478 multiboot_uint8_t efi_mmap[0];
479};
480
486 multiboot_uint32_t type;
487 multiboot_uint32_t size;
488 multiboot_uint32_t pointer;
489};
490
496 multiboot_uint32_t type;
497 multiboot_uint32_t size;
498 multiboot_uint64_t pointer;
499};
500
506 multiboot_uint32_t type;
507 multiboot_uint32_t size;
508 multiboot_uint32_t load_base_addr;
509};
510
511
512namespace MaxOS::system {
513
518 class Multiboot {
519 private:
520 multiboot_tag_framebuffer* m_framebuffer;
521 multiboot_tag_basic_meminfo* m_basic_meminfo;
522 multiboot_tag_string* m_bootloader_name;
523 multiboot_tag_mmap* m_mmap;
524 multiboot_tag_old_acpi* m_old_acpi;
525 multiboot_tag_new_acpi* m_new_acpi;
526 multiboot_tag_module* m_module;
527
528 public:
529 Multiboot(unsigned long address, unsigned long magic);
530 ~Multiboot();
531
538
539 unsigned long start_address;
540 unsigned long end_address;
541
542 [[nodiscard]] multiboot_tag* start_tag() const;
543
544 [[nodiscard]] bool is_reserved(multiboot_uint64_t address) const;
545
546 };
547}
548
549
550#endif /* ! ASM_FILE */
551
552#endif /* ! MULTIBOOT_HEADER */
Parses and provides access to Multiboot 2 information.
Definition multiboot.h:518
bool is_reserved(multiboot_uint64_t address) const
Check if an address is reserved by a multiboot module.
unsigned long end_address
The end address of the multiboot info struct.
Definition multiboot.h:540
multiboot_tag * start_tag() const
multiboot_tag_basic_meminfo * basic_meminfo()
Get the basic memory info tag.
multiboot_tag_string * bootloader_name()
Get the bootloader name tag.
multiboot_tag_framebuffer * framebuffer()
Get the framebuffer tag.
Definition multiboot.cpp:99
multiboot_tag_old_acpi * old_acpi()
Get the old ACPI tag.
multiboot_tag_new_acpi * new_acpi()
Get the new ACPI tag.
multiboot_tag_mmap * mmap()
Get the module tag.
unsigned long start_address
The start address of the multiboot info struct.
Definition multiboot.h:539
A structure representing a color in RGB format.
Definition multiboot.h:206
multiboot_uint8_t green
The amount of green.
Definition multiboot.h:208
multiboot_uint8_t red
The amount of red.
Definition multiboot.h:207
multiboot_uint8_t blue
The amount of blue.
Definition multiboot.h:209
A tag specifying the load addresses of the OS image.
Definition multiboot.h:133
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:135
multiboot_uint32_t load_end_addr
The physical address of the end of the loaded image.
Definition multiboot.h:139
multiboot_uint32_t load_addr
The physical address to load the image.
Definition multiboot.h:138
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:134
multiboot_uint32_t bss_end_addr
The physical address of the end of the bss section.
Definition multiboot.h:140
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:136
multiboot_uint32_t header_addr
The physical address of the multiboot header.
Definition multiboot.h:137
A tag specifying the console flags.
Definition multiboot.h:158
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:159
multiboot_uint32_t console_flags
The console flags.
Definition multiboot.h:162
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:160
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:161
A tag specifying the entry point address of the OS image.
Definition multiboot.h:147
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:150
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:148
multiboot_uint32_t entry_addr
The physical address of the entry point.
Definition multiboot.h:151
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:149
A tag specifying the VESA framebuffer settings.
Definition multiboot.h:169
multiboot_uint32_t width
The width of the framebuffer in pixels.
Definition multiboot.h:173
multiboot_uint32_t depth
The depth of the framebuffer in bits per pixel.
Definition multiboot.h:175
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:172
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:170
multiboot_uint32_t height
The height of the framebuffer in pixels.
Definition multiboot.h:174
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:171
A tag requesting information from the bootloader.
Definition multiboot.h:122
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:125
multiboot_uint32_t requests[0]
The tags being requested.
Definition multiboot.h:126
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:123
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:124
A tag specifying the module alignment.
Definition multiboot.h:182
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:185
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:184
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:183
A tag containing information of where the OS image can be loaded.
Definition multiboot.h:192
multiboot_uint32_t size
*copydoc multiboot_header_tag::size
Definition multiboot.h:195
multiboot_uint16_t type
*copydoc multiboot_header_tag::type
Definition multiboot.h:193
multiboot_uint32_t align
The alignment of the image.
Definition multiboot.h:198
multiboot_uint32_t min_addr
The lowest address the image can be loaded at.
Definition multiboot.h:196
multiboot_uint32_t max_addr
The highest address the image can be loaded at.
Definition multiboot.h:197
multiboot_uint16_t flags
*copydoc multiboot_header_tag::flags
Definition multiboot.h:194
multiboot_uint32_t preference
The load address preference (0 = none, 1 = low, 2 = high)
Definition multiboot.h:199
Common header for all multiboot header tags.
Definition multiboot.h:112
multiboot_uint16_t type
The type of the tag.
Definition multiboot.h:113
multiboot_uint32_t size
The size of the tag including this header.
Definition multiboot.h:115
multiboot_uint16_t flags
Flags (must be 0)
Definition multiboot.h:114
Contains the Multiboot 2 header information.
Definition multiboot.h:101
multiboot_uint32_t architecture
The architecture the OS image is for.
Definition multiboot.h:103
multiboot_uint32_t checksum
The fields of this structure added together must equal 0 mod 2^32.
Definition multiboot.h:105
multiboot_uint32_t header_length
Total length of the multiboot header.
Definition multiboot.h:104
multiboot_uint32_t magic
The magic number identifying the header (Must be MULTIBOOT2_HEADER_MAGIC)
Definition multiboot.h:102
An entry in the memory map containing information about a region of memory.
Definition multiboot.h:222
multiboot_uint32_t zero
Must be zero.
Definition multiboot.h:226
multiboot_uint64_t addr
The starting address of the memory region.
Definition multiboot.h:223
multiboot_uint64_t len
The length of the memory region.
Definition multiboot.h:224
multiboot_uint32_t type
The type of memory region.
Definition multiboot.h:225
A tag containing information about the Advanced Power Management (APM) BIOS.
Definition multiboot.h:392
multiboot_uint16_t dseg
The data segment.
Definition multiboot.h:399
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:394
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:393
multiboot_uint16_t dseg_len
The length of the data segment.
Definition multiboot.h:403
multiboot_uint16_t version
The APM version.
Definition multiboot.h:395
multiboot_uint16_t flags
The flags.
Definition multiboot.h:400
multiboot_uint16_t cseg_len
The length of the code segment.
Definition multiboot.h:401
multiboot_uint16_t cseg
The code segment.
Definition multiboot.h:396
multiboot_uint16_t cseg_16_len
The length of the 16-bit code segment.
Definition multiboot.h:402
multiboot_uint16_t cseg_16
The 16-bit code segment.
Definition multiboot.h:398
multiboot_uint32_t offset
The offset.
Definition multiboot.h:397
A tag containing basic (legacy) memory information.
Definition multiboot.h:265
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:266
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:267
multiboot_uint32_t mem_lower
The amount of lower memory in KB.
Definition multiboot.h:268
multiboot_uint32_t mem_upper
The amount of upper memory in KB (upper memory is the memory above 1MB, below 4GB)
Definition multiboot.h:269
A tag containing information about the device the OS image was loaded from.
Definition multiboot.h:276
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:278
multiboot_uint32_t biosdev
The BIOS disk device the OS image was loaded from.
Definition multiboot.h:279
multiboot_uint32_t slice
The slice number of the disk device.
Definition multiboot.h:280
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:277
multiboot_uint32_t part
The partition number of the disk device.
Definition multiboot.h:281
A tag containing the 32bit EFI image handle.
Definition multiboot.h:485
multiboot_uint32_t pointer
Where the EFI image handle is located.
Definition multiboot.h:488
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:486
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:487
A tag containing information about the EFI 32-bit system table.
Definition multiboot.h:410
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:412
multiboot_uint32_t pointer
Where the EFI system table is located.
Definition multiboot.h:413
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:411
A tag containing the 64bit EFI image handle.
Definition multiboot.h:495
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:497
multiboot_uint64_t pointer
Where the EFI image handle is located.
Definition multiboot.h:498
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:496
A tag containing information about the EFI 64-bit system table.
Definition multiboot.h:420
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:421
multiboot_uint64_t pointer
Where the EFI system table is located.
Definition multiboot.h:423
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:422
A tag containing the EFI memory map.
Definition multiboot.h:473
multiboot_uint8_t efi_mmap[0]
The EFI memory map.
Definition multiboot.h:478
multiboot_uint32_t descr_vers
The version of the EFI memory descriptor.
Definition multiboot.h:477
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:475
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:474
multiboot_uint32_t descr_size
The size of each EFI memory descriptor.
Definition multiboot.h:476
A tag containing information about the ELF sections of the OS image.
Definition multiboot.h:379
char sections[0]
The section headers.
Definition multiboot.h:385
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:381
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:380
multiboot_uint32_t shndx
The section header string table index.
Definition multiboot.h:384
multiboot_uint32_t entsize
The size of each section header.
Definition multiboot.h:383
multiboot_uint32_t num
The number of section headers.
Definition multiboot.h:382
Common header for framebuffer tags.
Definition multiboot.h:337
multiboot_uint32_t framebuffer_width
The width of the framebuffer in pixels.
Definition multiboot.h:343
multiboot_uint8_t framebuffer_bpp
The number of bits per pixel.
Definition multiboot.h:345
multiboot_uint32_t framebuffer_height
The height of the framebuffer in pixels.
Definition multiboot.h:344
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:338
multiboot_uint16_t reserved
2 bytes reserved
Definition multiboot.h:347
multiboot_uint64_t framebuffer_addr
The physical address of the framebuffer.
Definition multiboot.h:341
multiboot_uint32_t framebuffer_pitch
The number of bytes per horizontal line.
Definition multiboot.h:342
multiboot_uint8_t framebuffer_type
The type of framebuffer.
Definition multiboot.h:346
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:339
A tag containing information about the framebuffer.
Definition multiboot.h:356
multiboot_uint8_t framebuffer_blue_field_position
The position of the blue field.
Definition multiboot.h:369
multiboot_uint16_t framebuffer_palette_num_colors
The number of colors in the palette.
Definition multiboot.h:361
multiboot_uint8_t framebuffer_red_mask_size
The size of the red mask.
Definition multiboot.h:366
multiboot_uint8_t framebuffer_blue_mask_size
The size of the blue mask.
Definition multiboot.h:370
struct multiboot_tag_framebuffer_common common
*copydoc multiboot_tag_framebuffer_common
Definition multiboot.h:357
multiboot_uint8_t framebuffer_red_field_position
The position of the red field.
Definition multiboot.h:365
multiboot_uint8_t framebuffer_green_field_position
The position of the green field.
Definition multiboot.h:367
multiboot_uint8_t framebuffer_green_mask_size
The size of the green mask.
Definition multiboot.h:368
A tag containing the load base address of the OS image.
Definition multiboot.h:505
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:506
multiboot_uint32_t load_base_addr
Where the OS image was loaded.
Definition multiboot.h:508
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:507
A tag containing the collection of memory map entries that outline the memory layout.
Definition multiboot.h:288
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:290
struct multiboot_mmap_entry entries[0]
The memory map entries.
Definition multiboot.h:293
multiboot_uint32_t entry_size
The size of each entry.
Definition multiboot.h:291
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:289
multiboot_uint32_t entry_version
The version of the entry structure (must be 0)
Definition multiboot.h:292
A tag containing information about a loaded module.
Definition multiboot.h:253
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:254
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:255
multiboot_uint32_t mod_end
The ending address of the module.
Definition multiboot.h:257
char cmdline[0]
The args passed to the module.
Definition multiboot.h:258
multiboot_uint32_t mod_start
The starting address of the module.
Definition multiboot.h:256
A tag containing information about the network booting.
Definition multiboot.h:463
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:464
multiboot_uint8_t dhcpack[0]
The DHCP ACK packet.
Definition multiboot.h:466
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:465
A tag containing information about the new ACPI RSDP.
Definition multiboot.h:453
multiboot_uint8_t rsdp[0]
The RSDP structure.
Definition multiboot.h:456
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:455
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:454
A tag containing information about the old ACPI RSDP.
Definition multiboot.h:443
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:444
multiboot_uint8_t rsdp[0]
The RSDP structure.
Definition multiboot.h:446
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:445
A tag containing information about the System Management BIOS (SMBIOS)
Definition multiboot.h:430
multiboot_uint8_t major
The major version of SMBIOS.
Definition multiboot.h:433
multiboot_uint8_t reserved[6]
6 bytes reserved
Definition multiboot.h:435
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:431
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:432
multiboot_uint8_t minor
The minor version of SMBIOS.
Definition multiboot.h:434
multiboot_uint8_t tables[0]
The SMBIOS tables.
Definition multiboot.h:436
A tag containing a null-terminated string.
Definition multiboot.h:243
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:244
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:245
A tag containing information about the VESA BIOS Extensions (VBE)
Definition multiboot.h:316
multiboot_uint32_t size
*copydoc multiboot_tag::size
Definition multiboot.h:318
struct multiboot_vbe_info_block vbe_control_info
The VBE control information.
Definition multiboot.h:325
multiboot_uint16_t vbe_interface_off
The offset of the VBE interface.
Definition multiboot.h:322
struct multiboot_vbe_mode_info_block vbe_mode_info
The VBE mode information.
Definition multiboot.h:326
multiboot_uint16_t vbe_mode
The VBE mode.
Definition multiboot.h:320
multiboot_uint16_t vbe_interface_len
The length of the VBE interface.
Definition multiboot.h:323
multiboot_uint16_t vbe_interface_seg
The segment of the VBE interface.
Definition multiboot.h:321
multiboot_uint32_t type
*copydoc multiboot_tag::type
Definition multiboot.h:317
Common header for all multiboot info tags.
Definition multiboot.h:234
multiboot_uint32_t size
The size of the tag including this header.
Definition multiboot.h:236
multiboot_uint32_t type
The type of the tag.
Definition multiboot.h:235
A tag containing information about the VESA BIOS Extensions (VBE)
Definition multiboot.h:300
multiboot_uint8_t external_specification[512]
The VBE information block as defined by the VBE standard.
Definition multiboot.h:301
A tag containing information about a specific VBE video mode.
Definition multiboot.h:308
multiboot_uint8_t external_specification[256]
The VBE mode information block as defined by the VBE standard.
Definition multiboot.h:309