Loading...
Searching...
No Matches
mb_info.h
Go to the documentation of this file.
/*
* (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
* Frank Mehnert <fm3@os.inf.tu-dresden.de>
* economic rights: Technische Universität Dresden (Germany)
* License: see LICENSE.spdx (in this directory or the directories above)
*/
#ifndef L4UTIL_MB_INFO_H
#define L4UTIL_MB_INFO_H
/******************************************************************************
* Multiboot (v1)
*****************************************************************************/
#ifndef __ASSEMBLY__
#include <l4/sys/compiler.h>
#include <l4/sys/l4int.h>
/*
* \defgroup l4util_mb_mod Multiboot v1
* \ingroup l4util_api
*/
typedef struct
{
l4_uint32_t mod_start;
l4_uint32_t mod_end;
l4_uint32_t cmdline;
l4_uint32_t pad;
} l4util_mb_mod_t;
typedef struct __attribute__((packed))
{
l4_uint32_t struct_size;
l4_uint64_t addr;
l4_uint64_t size;
l4_uint32_t type;
/* unspecified optional padding... */
} l4util_mb_addr_range_t;
#define MB_ARD_MEMORY 1
#define MB_ART_MEMORY 1
#define MB_ART_RESERVED 2
#define MB_ART_ACPI 3
#define MB_ART_NVS 4
#define MB_ART_UNUSABLE 5
typedef struct
{
l4_uint32_t size;
l4_uint8_t drive_number;
l4_uint8_t drive_mode;
l4_uint16_t drive_cylinders;
l4_uint8_t drive_heads;
l4_uint8_t drive_sectors;
l4_uint16_t drive_ports[0];
} l4util_mb_drive_t;
/* Drive Mode. */
#define MB_DI_CHS_MODE 0
#define MB_DI_LBA_MODE 1
typedef struct
{
l4_uint16_t version;
l4_uint16_t cseg;
l4_uint32_t offset;
l4_uint16_t cseg_16;
l4_uint16_t dseg_16;
l4_uint16_t flags;
l4_uint16_t cseg_len;
l4_uint16_t cseg_16_len;
l4_uint16_t dseg_16_len;
} __attribute__((packed)) l4util_mb_apm_t;
static_assert(sizeof(l4util_mb_apm_t) == 20, "Check l4util_mb_apm_t");
typedef struct
{
l4_uint8_t signature[4];
l4_uint16_t version;
l4_uint32_t oem_string;
l4_uint32_t capabilities;
l4_uint32_t video_mode;
l4_uint16_t total_memory;
l4_uint16_t oem_software_rev;
l4_uint32_t oem_vendor_name;
l4_uint32_t oem_product_name;
l4_uint32_t oem_product_rev;
l4_uint8_t reserved[222];
l4_uint8_t oem_data[256];
} __attribute__((packed)) l4util_mb_vbe_ctrl_t;
static_assert(sizeof(l4util_mb_vbe_ctrl_t) == 512, "Check l4util_mb_vbe_ctrl_t");
typedef struct
{
l4_uint16_t mode_attributes;
l4_uint8_t win_a_attributes;
l4_uint8_t win_b_attributes;
l4_uint16_t win_granularity;
l4_uint16_t win_size;
l4_uint16_t win_a_segment;
l4_uint16_t win_b_segment;
l4_uint32_t win_func;
l4_uint16_t bytes_per_scanline;
l4_uint16_t x_resolution;
l4_uint16_t y_resolution;
l4_uint8_t x_char_size;
l4_uint8_t y_char_size;
l4_uint8_t number_of_planes;
l4_uint8_t bits_per_pixel;
l4_uint8_t number_of_banks;
l4_uint8_t memory_model;
l4_uint8_t bank_size;
l4_uint8_t number_of_image_pages;
l4_uint8_t reserved0;
l4_uint8_t red_mask_size;
l4_uint8_t red_field_position;
l4_uint8_t green_mask_size;
l4_uint8_t green_field_position;
l4_uint8_t blue_mask_size;
l4_uint8_t blue_field_position;
l4_uint8_t reserved_mask_size;
l4_uint8_t reserved_field_position;
l4_uint8_t direct_color_mode_info;
l4_uint32_t phys_base;
l4_uint32_t reserved1;
l4_uint16_t reversed2;
l4_uint16_t linear_bytes_per_scanline;
l4_uint8_t banked_number_of_image_pages;
l4_uint8_t linear_number_of_image_pages;
l4_uint8_t linear_red_mask_size;
l4_uint8_t linear_red_field_position;
l4_uint8_t linear_green_mask_size;
l4_uint8_t linear_green_field_position;
l4_uint8_t linear_blue_mask_size;
l4_uint8_t linear_blue_field_position;
l4_uint8_t linear_reserved_mask_size;
l4_uint8_t linear_reserved_field_position;
l4_uint32_t max_pixel_clock;
l4_uint8_t reserved3[190];
} __attribute__ ((packed)) l4util_mb_vbe_mode_t;
static_assert(sizeof(l4util_mb_vbe_mode_t) == 256, "Check l4util_mb_vbe_mode_t");
typedef struct
{
l4_uint32_t flags;
l4_uint32_t mem_lower;
l4_uint32_t mem_upper;
l4_uint32_t boot_device;
l4_uint32_t cmdline;
l4_uint32_t mods_count;
l4_uint32_t mods_addr;
union
{
struct
{
l4_uint32_t tabsize;
l4_uint32_t strsize;
l4_uint32_t addr;
l4_uint32_t pad;
}
a;
struct
{
l4_uint32_t num;
l4_uint32_t size;
l4_uint32_t addr;
l4_uint32_t shndx;
}
e;
}
syms;
l4_uint32_t mmap_length;
l4_uint32_t mmap_addr;
l4_uint32_t drives_length;
l4_uint32_t drives_addr;
l4_uint32_t config_table;
l4_uint32_t boot_loader_name;
l4_uint32_t apm_table;
l4_uint32_t vbe_ctrl_info;
l4_uint32_t vbe_mode_info;
l4_uint16_t vbe_mode;
l4_uint16_t vbe_interface_seg;
l4_uint16_t vbe_interface_off;
l4_uint16_t vbe_interface_len;
} l4util_mb_info_t;
static_assert(sizeof(l4util_mb_info_t) == 88, "Check l4util_mb_info_t");
static inline l4util_mb_addr_range_t *
l4util_mb_first_mmap_entry(l4util_mb_info_t *mbi)
{
return (l4util_mb_addr_range_t *)(l4_addr_t)mbi->mmap_addr;
}
static inline l4util_mb_addr_range_t *
l4util_mb_next_mmap_entry(l4util_mb_addr_range_t *e)
{
return (l4util_mb_addr_range_t *)((l4_addr_t)e + e->struct_size
+ sizeof(e->struct_size));
}
#define l4util_mb_for_each_mmap_entry(i, mbi) \
for (i = l4util_mb_first_mmap_entry(mbi); \
(unsigned long)i < (unsigned long)mbi->mmap_addr + mbi->mmap_length; \
i = l4util_mb_next_mmap_entry(i))
#endif /* ! __ASSEMBLY__ */
#define L4UTIL_MB_MEMORY 0x00000001
#define L4UTIL_MB_BOOTDEV 0x00000002
#define L4UTIL_MB_CMDLINE 0x00000004
#define L4UTIL_MB_MODS 0x00000008
/* These next two are mutually exclusive */
#define L4UTIL_MB_AOUT_SYMS 0x00000010
#define L4UTIL_MB_ELF_SHDR 0x00000020
#define L4UTIL_MB_MEM_MAP 0x00000040
#define L4UTIL_MB_DRIVE_INFO 0x00000080
#define L4UTIL_MB_CONFIG_TABLE 0x00000100
#define L4UTIL_MB_BOOT_LOADER_NAME 0x00000200
#define L4UTIL_MB_APM_TABLE 0x00000400
#define L4UTIL_MB_VIDEO_INFO 0x00000800
#define L4UTIL_MB_VALID 0x2BADB002UL
#define L4UTIL_MB_VALID_ASM 0x2BADB002
/******************************************************************************
* Multiboot2
*****************************************************************************/
#ifndef __ASSEMBLY__
typedef struct
{
l4_uint32_t total_size;
l4_uint32_t reserved;
} __attribute__((packed)) l4util_mb2_info_t;
typedef struct
{
char string[0];
} __attribute__((packed)) l4util_mb2_cmdline_tag_t;
typedef struct
{
l4_uint32_t mod_start;
l4_uint32_t mod_end;
char string[];
} __attribute__((packed)) l4util_mb2_module_tag_t;
typedef struct
{
l4_uint64_t base_addr;
l4_uint64_t length;
l4_uint32_t type;
l4_uint32_t reserved;
} __attribute__((packed)) l4util_mb2_memmap_entry_t;
typedef struct
{
l4_uint32_t entry_size;
l4_uint32_t entry_version;
l4util_mb2_memmap_entry_t entries[];
} __attribute__((packed)) l4util_mb2_memmap_tag_t;
typedef struct
{
char data[0];
} __attribute__((packed)) l4util_mb2_rsdp_tag_t;
struct color_info_rgb_t
{
l4_uint8_t framebuffer_red_field_position;
l4_uint8_t framebuffer_red_mask_size;
l4_uint8_t framebuffer_green_field_position;
l4_uint8_t framebuffer_green_mask_size;
l4_uint8_t framebuffer_blue_field_position;
l4_uint8_t framebuffer_blue_mask_size;
} __attribute__((packed));
typedef struct
{
l4_uint64_t framebuffer_addr;
l4_uint32_t framebuffer_pitch;
l4_uint32_t framebuffer_width;
l4_uint32_t framebuffer_height;
l4_uint8_t framebuffer_bpp;
l4_uint8_t framebuffer_type;
l4_uint8_t reserved;
// color_info;
union
{
struct color_info_rgb_t color_info_rgb;
};
} __attribute__((packed)) l4util_mb2_framebuffer_tag_t;
typedef struct
{
l4_uint32_t type;
l4_uint32_t size;
union
{
l4util_mb2_cmdline_tag_t cmdline;
l4util_mb2_module_tag_t module;
l4util_mb2_memmap_tag_t memmap;
l4util_mb2_framebuffer_tag_t fb;
l4util_mb2_rsdp_tag_t rsdp;
};
} __attribute__((packed)) l4util_mb2_tag_t;
#endif /* ! __ASSEMBLY__ */
#define L4UTIL_MB2_MAGIC 0xE85250D6
#define L4UTIL_MB2_ARCH_I386 0x0
#define L4UTIL_MB2_TERMINATOR_HEADER_TAG 0
#define L4UTIL_MB2_INFO_REQUEST_HEADER_TAG 1
#define L4UTIL_MB2_ENTRY_ADDRESS_HEADER_TAG 3
#define L4UTIL_MB2_FRAMEBUFFER_HEADER_TAG 5
#define L4UTIL_MB2_RELOCATABLE_HEADER_TAG 10
#define L4UTIL_MB2_TAG_FLAG_REQUIRED 0
#define L4UTIL_MB2_TAG_ALIGN_SHIFT 3
#define L4UTIL_MB2_TAG_ALIGN 8
#define L4UTIL_MB2_TERMINATOR_INFO_TAG 0
#define L4UTIL_MB2_BOOT_CMDLINE_INFO_TAG 1
#define L4UTIL_MB2_MODULE_INFO_TAG 3
#define L4UTIL_MB2_MEMORY_MAP_INFO_TAG 6
#define L4UTIL_MB2_FRAMEBUFFER_INFO_TAG 8
#define L4UTIL_MB2_RSDP_OLD_INFO_TAG 14
#define L4UTIL_MB2_RSDP_NEW_INFO_TAG 15
#define L4UTIL_MB2_IMAGE_LOAD_BASE_PHYS_INFO_TAG 21
#define L4UTIL_MB2_RELO_PREFERED_NONE 0
#define L4UTIL_MB2_RELO_PREFERED_MIN 1
#define L4UTIL_MB2_RELO_PREFERED_MAX 2
#endif
compiler.h
L4 compiler related defines.
l4_addr_t
unsigned long l4_addr_t
Address type.
Definition l4int.h:34
l4_uint8_t
unsigned char l4_uint8_t
Unsigned 8bit value.
Definition l4int.h:25
l4_uint32_t
unsigned int l4_uint32_t
Unsigned 32bit value.
Definition l4int.h:29
l4_uint16_t
unsigned short int l4_uint16_t
Unsigned 16bit value.
Definition l4int.h:27
l4_uint64_t
unsigned long long l4_uint64_t
Unsigned 64bit value.
Definition l4int.h:31
l4int.h
Fixed sized integer types, generic version.
l4util_mb_addr_range_t
INT-15, AX=E820 style "AddressRangeDescriptor" ...with a "size" parameter on the front which is the s...
Definition mb_info.h:49
l4util_mb_addr_range_t::type
l4_uint32_t type
type of memory range
Definition mb_info.h:53
l4util_mb_addr_range_t::size
l4_uint64_t size
Size of memory range.
Definition mb_info.h:52
l4util_mb_addr_range_t::addr
l4_uint64_t addr
Start address.
Definition mb_info.h:51
l4util_mb_addr_range_t::struct_size
l4_uint32_t struct_size
Size of structure.
Definition mb_info.h:50
l4util_mb_apm_t
APM BIOS info.
Definition mb_info.h:91
l4util_mb_drive_t
Drive Info structure.
Definition mb_info.h:74
l4util_mb_drive_t::drive_ports
l4_uint16_t drive_ports[0]
<number of sectors per track
Definition mb_info.h:81
l4util_mb_drive_t::drive_number
l4_uint8_t drive_number
<The size of this structure.
Definition mb_info.h:76
l4util_mb_drive_t::drive_mode
l4_uint8_t drive_mode
<The BIOS drive number.
Definition mb_info.h:77
l4util_mb_drive_t::drive_cylinders
l4_uint16_t drive_cylinders
<The access mode (see below).
Definition mb_info.h:78
l4util_mb_drive_t::drive_sectors
l4_uint8_t drive_sectors
<number of heads
Definition mb_info.h:80
l4util_mb_drive_t::drive_heads
l4_uint8_t drive_heads
<number of cylinders
Definition mb_info.h:79
l4util_mb_info_t
MultiBoot Info description.
Definition mb_info.h:248
l4util_mb_info_t::drives_length
l4_uint32_t drives_length
size of drive info buffer
Definition mb_info.h:283
l4util_mb_info_t::num
l4_uint32_t num
(ELF) Kernel section header table
Definition mb_info.h:272
l4util_mb_info_t::vbe_mode
l4_uint16_t vbe_mode
VESA video mode number.
Definition mb_info.h:290
l4util_mb_info_t::mmap_length
l4_uint32_t mmap_length
size of memory mapping buffer
Definition mb_info.h:281
l4util_mb_info_t::vbe_interface_len
l4_uint16_t vbe_interface_len
VESA lenght of prot BIOS interface.
Definition mb_info.h:293
l4util_mb_info_t::drives_addr
l4_uint32_t drives_addr
address of driver info buffer
Definition mb_info.h:284
l4util_mb_info_t::mem_upper
l4_uint32_t mem_upper
available memory starting from 1MB [KB]
Definition mb_info.h:251
l4util_mb_info_t::tabsize
l4_uint32_t tabsize
(a.out) Kernel symbol table info
Definition mb_info.h:262
l4util_mb_info_t::boot_device
l4_uint32_t boot_device
"root" partition
Definition mb_info.h:252
l4util_mb_info_t::apm_table
l4_uint32_t apm_table
APM table.
Definition mb_info.h:287
l4util_mb_info_t::cmdline
l4_uint32_t cmdline
Kernel command line.
Definition mb_info.h:253
l4util_mb_info_t::config_table
l4_uint32_t config_table
ROM configuration table.
Definition mb_info.h:285
l4util_mb_info_t::vbe_interface_off
l4_uint16_t vbe_interface_off
VESA offset of prot BIOS interface.
Definition mb_info.h:292
l4util_mb_info_t::mem_lower
l4_uint32_t mem_lower
available memory below 1MB
Definition mb_info.h:250
l4util_mb_info_t::mmap_addr
l4_uint32_t mmap_addr
address of memory mapping buffer
Definition mb_info.h:282
l4util_mb_info_t::vbe_mode_info
l4_uint32_t vbe_mode_info
VESA video mode info.
Definition mb_info.h:289
l4util_mb_info_t::vbe_ctrl_info
l4_uint32_t vbe_ctrl_info
VESA video contoller info.
Definition mb_info.h:288
l4util_mb_info_t::mods_addr
l4_uint32_t mods_addr
module list
Definition mb_info.h:255
l4util_mb_info_t::mods_count
l4_uint32_t mods_count
number of modules
Definition mb_info.h:254
l4util_mb_info_t::boot_loader_name
l4_uint32_t boot_loader_name
Boot Loader Name.
Definition mb_info.h:286
l4util_mb_info_t::flags
l4_uint32_t flags
MultiBoot info version number.
Definition mb_info.h:249
l4util_mb_info_t::vbe_interface_seg
l4_uint16_t vbe_interface_seg
VESA segment of prot BIOS interface.
Definition mb_info.h:291
l4util_mb_mod_t
The structure type "mod_list" is used by the multiboot_info structure.
Definition mb_info.h:34
l4util_mb_mod_t::mod_start
l4_uint32_t mod_start
Starting address of module in memory.
Definition mb_info.h:35
l4util_mb_mod_t::pad
l4_uint32_t pad
padding to take it to 16 bytes
Definition mb_info.h:38
l4util_mb_mod_t::cmdline
l4_uint32_t cmdline
Module command line.
Definition mb_info.h:37
l4util_mb_mod_t::mod_end
l4_uint32_t mod_end
End address of module in memory.
Definition mb_info.h:36
l4util_mb_vbe_ctrl_t
VBE controller information.
Definition mb_info.h:107
l4util_mb_vbe_mode_t
VBE mode information.
Definition mb_info.h:126
l4util_mb_vbe_mode_t::number_of_banks
l4_uint8_t number_of_banks
Number of banks.
Definition mb_info.h:164
l4util_mb_vbe_mode_t::linear_bytes_per_scanline
l4_uint16_t linear_bytes_per_scanline
Bytes per scan line for linear modes.
Definition mb_info.h:210
l4util_mb_vbe_mode_t::linear_number_of_image_pages
l4_uint8_t linear_number_of_image_pages
Number of images for linear modes.
Definition mb_info.h:214
l4util_mb_vbe_mode_t::x_resolution
l4_uint16_t x_resolution
Horizontal resolution in pixels or characters.
Definition mb_info.h:152
l4util_mb_vbe_mode_t::linear_red_mask_size
l4_uint8_t linear_red_mask_size
Size of direct color red mask (linear modes).
Definition mb_info.h:216
l4util_mb_vbe_mode_t::win_b_attributes
l4_uint8_t win_b_attributes
Window B attributes.
Definition mb_info.h:134
l4util_mb_vbe_mode_t::red_field_position
l4_uint8_t red_field_position
Bit position of LSB of red mask.
Definition mb_info.h:180
l4util_mb_vbe_mode_t::blue_mask_size
l4_uint8_t blue_mask_size
Size of direct color blue mask in bits.
Definition mb_info.h:186
l4util_mb_vbe_mode_t::linear_reserved_mask_size
l4_uint8_t linear_reserved_mask_size
Size of direct color reserved mask (linear modes).
Definition mb_info.h:228
l4util_mb_vbe_mode_t::memory_model
l4_uint8_t memory_model
Memory model type.
Definition mb_info.h:166
l4util_mb_vbe_mode_t::win_b_segment
l4_uint16_t win_b_segment
Window B start segment.
Definition mb_info.h:142
l4util_mb_vbe_mode_t::linear_green_field_position
l4_uint8_t linear_green_field_position
Bit position of LSB of green mask (linear modes).
Definition mb_info.h:222
l4util_mb_vbe_mode_t::phys_base
l4_uint32_t phys_base
Physical address for flat memory memory frame buffer.
Definition mb_info.h:200
l4util_mb_vbe_mode_t::y_char_size
l4_uint8_t y_char_size
Character cell height in pixels.
Definition mb_info.h:158
l4util_mb_vbe_mode_t::bytes_per_scanline
l4_uint16_t bytes_per_scanline
Bytes per scan line.
Definition mb_info.h:146
l4util_mb_vbe_mode_t::win_granularity
l4_uint16_t win_granularity
Window granularity.
Definition mb_info.h:136
l4util_mb_vbe_mode_t::reserved1
l4_uint32_t reserved1
Reserved – always set to 0.
Definition mb_info.h:202
l4util_mb_vbe_mode_t::red_mask_size
l4_uint8_t red_mask_size
Size of direct color red mask in bits.
Definition mb_info.h:178
l4util_mb_vbe_mode_t::bits_per_pixel
l4_uint8_t bits_per_pixel
Bits per pixel.
Definition mb_info.h:162
l4util_mb_vbe_mode_t::x_char_size
l4_uint8_t x_char_size
Character cell width in pixels.
Definition mb_info.h:156
l4util_mb_vbe_mode_t::green_mask_size
l4_uint8_t green_mask_size
Size of direct color green mask in bits.
Definition mb_info.h:182
l4util_mb_vbe_mode_t::max_pixel_clock
l4_uint32_t max_pixel_clock
Maximum pixel clock (in Hz) for graphics mode.
Definition mb_info.h:232
l4util_mb_vbe_mode_t::green_field_position
l4_uint8_t green_field_position
Bit position of LSB of green mask.
Definition mb_info.h:184
l4util_mb_vbe_mode_t::reversed2
l4_uint16_t reversed2
Reserved – always set to 0.
Definition mb_info.h:204
l4util_mb_vbe_mode_t::number_of_planes
l4_uint8_t number_of_planes
Number of memory planes.
Definition mb_info.h:160
l4util_mb_vbe_mode_t::linear_blue_mask_size
l4_uint8_t linear_blue_mask_size
Size of direct color blue mask (linear modes).
Definition mb_info.h:224
l4util_mb_vbe_mode_t::linear_blue_field_position
l4_uint8_t linear_blue_field_position
Bit position of LSB of blue mask (linear modes).
Definition mb_info.h:226
l4util_mb_vbe_mode_t::linear_red_field_position
l4_uint8_t linear_red_field_position
Bit position of LSB of red mask (linear modes).
Definition mb_info.h:218
l4util_mb_vbe_mode_t::banked_number_of_image_pages
l4_uint8_t banked_number_of_image_pages
Number of images for banked modes.
Definition mb_info.h:212
l4util_mb_vbe_mode_t::linear_reserved_field_position
l4_uint8_t linear_reserved_field_position
Bit position of LSB of reserved mask (linear modes).
Definition mb_info.h:230
l4util_mb_vbe_mode_t::win_func
l4_uint32_t win_func
Real mode pointer to window function.
Definition mb_info.h:144
l4util_mb_vbe_mode_t::reserved3
l4_uint8_t reserved3[190]
Reserved (padding).
Definition mb_info.h:234
l4util_mb_vbe_mode_t::bank_size
l4_uint8_t bank_size
Bank size in KiB.
Definition mb_info.h:168
l4util_mb_vbe_mode_t::reserved0
l4_uint8_t reserved0
Reserved for page function.
Definition mb_info.h:172
l4util_mb_vbe_mode_t::win_a_attributes
l4_uint8_t win_a_attributes
Window A attributes.
Definition mb_info.h:132
l4util_mb_vbe_mode_t::win_size
l4_uint16_t win_size
Window size.
Definition mb_info.h:138
l4util_mb_vbe_mode_t::win_a_segment
l4_uint16_t win_a_segment
Window A start segment.
Definition mb_info.h:140
l4util_mb_vbe_mode_t::blue_field_position
l4_uint8_t blue_field_position
Bit position of LSB of blue mask.
Definition mb_info.h:188
l4util_mb_vbe_mode_t::mode_attributes
l4_uint16_t mode_attributes
Mode attributes.
Definition mb_info.h:130
l4util_mb_vbe_mode_t::linear_green_mask_size
l4_uint8_t linear_green_mask_size
Size of direct color green mask (linear modes).
Definition mb_info.h:220
l4util_mb_vbe_mode_t::y_resolution
l4_uint16_t y_resolution
Vertical resolution in pixels or characters.
Definition mb_info.h:154
l4util_mb_vbe_mode_t::number_of_image_pages
l4_uint8_t number_of_image_pages
Number of images.
Definition mb_info.h:170
l4util_mb_vbe_mode_t::reserved_mask_size
l4_uint8_t reserved_mask_size
Size of direct color reserved mask in bits.
Definition mb_info.h:190
l4util_mb_vbe_mode_t::direct_color_mode_info
l4_uint8_t direct_color_mode_info
Direct color mode attributes.
Definition mb_info.h:194
l4util_mb_vbe_mode_t::reserved_field_position
l4_uint8_t reserved_field_position
Bit position of LSB of reserved mask.
Definition mb_info.h:192