Skip to content

Limine

Copyright (C) 2022-2025 Mintsuki and contributors.

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

struct limine_uuid (4 fields) source
§ uint32_t a
§ uint16_t b
§ uint16_t c
§ uint8_t d[8]
struct limine_file (13 fields) source
§ uint64_t revision
§ LIMINE_PTR(void *) address
§ uint64_t size
§ LIMINE_PTR(char *) path
§ uint32_t media_type
§ uint32_t unused
§ uint32_t tftp_ip
§ uint32_t tftp_port
§ uint32_t partition_index
§ uint32_t mbr_disk_id
§ struct limine_uuid gpt_disk_uuid
§ struct limine_uuid gpt_part_uuid
§ struct limine_uuid part_uuid
struct limine_bootloader_info_response (3 fields) source
§ uint64_t revision
§ LIMINE_PTR(char *) name
§ LIMINE_PTR(char *) version
struct limine_bootloader_info_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_executable_cmdline_response (2 fields) source
§ uint64_t revision
§ LIMINE_PTR(char *) cmdline
struct limine_executable_cmdline_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_firmware_type_response (2 fields) source
§ uint64_t revision
§ uint64_t firmware_type
struct limine_firmware_type_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_stack_size_response (1 field) source
§ uint64_t revision
struct limine_stack_size_request (4 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ uint64_t stack_size
struct limine_hhdm_response (2 fields) source
§ uint64_t revision
§ uint64_t offset
struct limine_hhdm_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_hhdm_response *) response
struct limine_video_mode (11 fields) source
§ uint64_t pitch
§ uint64_t width
§ uint64_t height
§ uint16_t bpp
§ uint8_t memory_model
§ uint8_t red_mask_size
§ uint8_t red_mask_shift
§ uint8_t green_mask_size
§ uint8_t green_mask_shift
§ uint8_t blue_mask_size
§ uint8_t blue_mask_shift
struct limine_framebuffer (17 fields) source
§ LIMINE_PTR(void *) address
§ uint64_t width
§ uint64_t height
§ uint64_t pitch
§ uint16_t bpp
§ uint8_t memory_model
§ uint8_t red_mask_size
§ uint8_t red_mask_shift
§ uint8_t green_mask_size
§ uint8_t green_mask_shift
§ uint8_t blue_mask_size
§ uint8_t blue_mask_shift
§ uint8_t unused[7]
§ uint64_t edid_size
§ LIMINE_PTR(void *) edid

Response revision 1

§ uint64_t mode_count
§ LIMINE_PTR(struct limine_video_mode **) modes
struct limine_framebuffer_response (3 fields) source
§ uint64_t revision
§ uint64_t framebuffer_count
§ LIMINE_PTR(struct limine_framebuffer **) framebuffers
struct limine_framebuffer_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_paging_mode_response (2 fields) source
§ uint64_t revision
§ uint64_t mode
struct limine_paging_mode_request (6 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ uint64_t mode
§ uint64_t max_mode
§ uint64_t min_mode
struct limine_memmap_entry (3 fields) source
§ uint64_t base
§ uint64_t length
§ uint64_t type
struct limine_memmap_response (3 fields) source
§ uint64_t revision
§ uint64_t entry_count
§ LIMINE_PTR(struct limine_memmap_entry **) entries
struct limine_memmap_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_memmap_response *) response
struct limine_entry_point_response (1 field) source
§ uint64_t revision
struct limine_entry_point_request (4 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_kernel_file_response (1 field) source
§ uint64_t revision
struct limine_kernel_file_request (2 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_internal_module (2 fields) source
§ LIMINE_PTR(const char *) path
§ uint64_t flags
struct limine_module_response (3 fields) source
§ uint64_t revision
§ uint64_t module_count
§ LIMINE_PTR(struct limine_file **) modules
struct limine_module_request (5 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_module_response *) response

Request revision 1

§ uint64_t internal_module_count
§ LIMINE_PTR(struct limine_internal_module **) internal_modules
struct limine_rsdp_response (1 field) source
§ uint64_t revision
struct limine_rsdp_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_rsdp_response *) response
struct limine_smbios_response (1 field) source
§ uint64_t revision
struct limine_smbios_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_smbios_response *) response
struct limine_efi_system_table_response (1 field) source
§ uint64_t revision
struct limine_efi_system_table_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_efi_memmap_response (5 fields) source
§ uint64_t revision
§ LIMINE_PTR(void *) memmap
§ uint64_t memmap_size
§ uint64_t desc_size
§ uint64_t desc_version
struct limine_efi_memmap_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_boot_time_response (1 field) source
§ uint64_t revision
struct limine_boot_time_request (2 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_kernel_address_response (3 fields) source
§ uint64_t revision
§ uint64_t physical_base
§ uint64_t virtual_base
struct limine_kernel_address_request (2 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_dtb_response (2 fields) source
§ uint64_t revision
§ LIMINE_PTR(void *) dtb_ptr
struct limine_dtb_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
§ LIMINE_PTR(struct limine_dtb_response *) response
struct limine_riscv_bsp_hartid_response (2 fields) source
§ uint64_t revision
§ uint64_t bsp_hartid
struct limine_riscv_bsp_hartid_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
struct limine_bootloader_performance_response (4 fields) source
§ uint64_t revision
§ uint64_t reset_usec
§ uint64_t init_usec
§ uint64_t exec_usec
struct limine_bootloader_performance_request (3 fields) source
§ uint64_t id[4]
§ uint64_t revision
typedef void (*limine_terminal_write)(
    struct limine_terminal * *,
    const char * *,
    uint64_t
)
source
typedef void (*limine_terminal_callback)(
    struct limine_terminal * *,
    uint64_t,
    uint64_t,
    uint64_t,
    uint64_t
)
source
typedef void (*limine_goto_address)(struct LIMINE_MP (info) (info))
source
typedef void (*limine_entry_point)(void)
source
struct LIMINE_DEPRECATED limine_terminal(void)
source
struct LIMINE_DEPRECATED limine_terminal_response(void)
source
struct LIMINE_DEPRECATED limine_terminal_request(void)
source
LIMINE_DEPRECATED limine_5_level_paging_response(void)
source
struct LIMINE_DEPRECATED limine_5_level_paging_request(void)
source
#define LIMINE_H 1
source
#define LIMINE_PTR(TYPE)
source
Expansion
#define LIMINE_PTR(TYPE) uint64_t
#define LIMINE_PTR(TYPE)
source
Expansion
#define LIMINE_PTR(TYPE) TYPE
#define LIMINE_API_REVISION 0
source
#define LIMINE_DEPRECATED __attribute__((__deprecated__))
source
#define LIMINE_DEPRECATED_IGNORE_START
source
Expansion
#define LIMINE_DEPRECATED_IGNORE_START \
    _Pragma("GCC diagnostic push") \
        _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
#define LIMINE_DEPRECATED_IGNORE_END _Pragma("GCC diagnostic pop")
source
#define LIMINE_DEPRECATED
source
#define LIMINE_DEPRECATED_IGNORE_START
source
#define LIMINE_DEPRECATED_IGNORE_END
source
#define LIMINE_REQUESTS_START_MARKER
source
Expansion
#define LIMINE_REQUESTS_START_MARKER \
    uint64_t limine_requests_start_marker[4] = { \
        0xf6b8f4b39de7d1ae, 0xfab91a6940fcb9cf, 0x785c6ed015d3e316, \
        0x181e920a7852b9d9};
#define LIMINE_REQUESTS_END_MARKER
source
Expansion
#define LIMINE_REQUESTS_END_MARKER \
    uint64_t limine_requests_end_marker[2] = {0xadc0e0531bb10d03, \
                                              0x9572709f31764c62};
#define LIMINE_REQUESTS_DELIMITER LIMINE_REQUESTS_END_MARKER
source
#define LIMINE_BASE_REVISION(N)
source
Expansion
#define LIMINE_BASE_REVISION(N) \
    uint64_t limine_base_revision[3] = {0xf9562b2d5c95a6c8, \
                                        0x6a7b384944536bdc, (N)};
#define LIMINE_BASE_REVISION_SUPPORTED (limine_base_revision[2] == 0)
source
#define LIMINE_LOADED_BASE_REV_VALID
source
Expansion
#define LIMINE_LOADED_BASE_REV_VALID \
    (limine_base_revision[1] != 0x6a7b384944536bdc)
#define LIMINE_LOADED_BASE_REVISION (limine_base_revision[1])
source
#define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88, 0x0a82e883a194f07b
source
#define LIMINE_MEDIA_TYPE_GENERIC 0
source
#define LIMINE_MEDIA_TYPE_OPTICAL 1
source
#define LIMINE_MEDIA_TYPE_TFTP 2
source
#define LIMINE_BOOTLOADER_INFO_REQUEST
source
Expansion
#define LIMINE_BOOTLOADER_INFO_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xf55038d8e2a1202f, 0x279426fcf5f59740}
#define LIMINE_EXECUTABLE_CMDLINE_REQUEST
source
Expansion
#define LIMINE_EXECUTABLE_CMDLINE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x4b161536e598651e, 0xb390ad4a2f1f303a}
#define LIMINE_FIRMWARE_TYPE_REQUEST
source
Expansion
#define LIMINE_FIRMWARE_TYPE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x8c2f75d90bef28a8, 0x7045a4688eac00c3}
#define LIMINE_FIRMWARE_TYPE_X86BIOS 0
source
#define LIMINE_FIRMWARE_TYPE_UEFI32 1
source
#define LIMINE_FIRMWARE_TYPE_UEFI64 2
source
#define LIMINE_FIRMWARE_TYPE_SBI 3
source
#define LIMINE_STACK_SIZE_REQUEST
source
Expansion
#define LIMINE_STACK_SIZE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x224ef0460a8e8926, 0xe1cb0fc25f46ea3d}
#define LIMINE_HHDM_REQUEST
source
Expansion
#define LIMINE_HHDM_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x48dcf1cb8ad2b852, 0x63984e959a98244b}
#define LIMINE_FRAMEBUFFER_REQUEST
source
Expansion
#define LIMINE_FRAMEBUFFER_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x9d5827dcd881dd75, 0xa3148604f6fab11b}
#define LIMINE_FRAMEBUFFER_RGB 1
source
#define LIMINE_TERMINAL_REQUEST
source
Expansion
#define LIMINE_TERMINAL_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xc8ac59310c2b0844, 0xa68d0c7265d38878}
#define LIMINE_TERMINAL_CB_DEC 10
source
#define LIMINE_TERMINAL_CB_BELL 20
source
#define LIMINE_TERMINAL_CB_PRIVATE_ID 30
source
#define LIMINE_TERMINAL_CB_STATUS_REPORT 40
source
#define LIMINE_TERMINAL_CB_POS_REPORT 50
source
#define LIMINE_TERMINAL_CB_KBD_LEDS 60
source
#define LIMINE_TERMINAL_CB_MODE 70
source
#define LIMINE_TERMINAL_CB_LINUX 80
source
#define LIMINE_TERMINAL_CTX_SIZE ((uint64_t) (-1))
source
#define LIMINE_TERMINAL_CTX_SAVE ((uint64_t) (-2))
source
#define LIMINE_TERMINAL_CTX_RESTORE ((uint64_t) (-3))
source
#define LIMINE_TERMINAL_FULL_REFRESH ((uint64_t) (-4))
source

Response revision 1

#define LIMINE_TERMINAL_OOB_OUTPUT_GET ((uint64_t) (-10))
source
#define LIMINE_TERMINAL_OOB_OUTPUT_SET ((uint64_t) (-11))
source
#define LIMINE_TERMINAL_OOB_OUTPUT_OCRNL (1 << 0)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_OFDEL (1 << 1)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_OFILL (1 << 2)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_OLCUC (1 << 3)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_ONLCR (1 << 4)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_ONLRET (1 << 5)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_ONOCR (1 << 6)
source
#define LIMINE_TERMINAL_OOB_OUTPUT_OPOST (1 << 7)
source
#define LIMINE_PAGING_MODE_REQUEST
source
Expansion
#define LIMINE_PAGING_MODE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x95c1a0edab0944cb, 0xa4e5cb3842f7488a}
#define LIMINE_PAGING_MODE_X86_64_4LVL 0
source
#define LIMINE_PAGING_MODE_X86_64_5LVL 1
source
#define LIMINE_PAGING_MODE_MIN LIMINE_PAGING_MODE_X86_64_4LVL
source
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_X86_64_4LVL
source
#define LIMINE_PAGING_MODE_AARCH64_4LVL 0
source
#define LIMINE_PAGING_MODE_AARCH64_5LVL 1
source
#define LIMINE_PAGING_MODE_MIN LIMINE_PAGING_MODE_AARCH64_4LVL
source
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_AARCH64_4LVL
source
#define LIMINE_PAGING_MODE_RISCV_SV39 0
source
#define LIMINE_PAGING_MODE_RISCV_SV48 1
source
#define LIMINE_PAGING_MODE_RISCV_SV57 2
source
#define LIMINE_PAGING_MODE_MIN LIMINE_PAGING_MODE_RISCV_SV39
source
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_RISCV_SV48
source
#define LIMINE_PAGING_MODE_LOONGARCH64_4LVL 0
source
#define LIMINE_PAGING_MODE_MIN LIMINE_PAGING_MODE_LOONGARCH64_4LVL
source
#define LIMINE_PAGING_MODE_DEFAULT LIMINE_PAGING_MODE_LOONGARCH64_4LVL
source
#define LIMINE_5_LEVEL_PAGING_REQUEST
source
Expansion
#define LIMINE_5_LEVEL_PAGING_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x94469551da9b3192, 0xebe5e86db7382888}
#define LIMINE_MP_REQUEST
source
Expansion
#define LIMINE_MP_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x95a67b819a1b857e, 0xa0b61b723b6a73e0}
#define LIMINE_MP(TEXT)
source
Expansion
#define LIMINE_MP(TEXT) limine_mp_##TEXT
#define LIMINE_SMP_REQUEST
source
Expansion
#define LIMINE_SMP_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x95a67b819a1b857e, 0xa0b61b723b6a73e0}
#define LIMINE_MP(TEXT)
source
Expansion
#define LIMINE_MP(TEXT) limine_smp_##TEXT
#define LIMINE_MP_X2APIC (1 << 0)
source
#define LIMINE_SMP_X2APIC (1 << 0)
source
#define LIMINE_MEMMAP_REQUEST
source
Expansion
#define LIMINE_MEMMAP_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x67cf3d9d378a806f, 0xe304acdfc50c3c62}
#define LIMINE_MEMMAP_USABLE 0
source
#define LIMINE_MEMMAP_RESERVED 1
source
#define LIMINE_MEMMAP_ACPI_RECLAIMABLE 2
source
#define LIMINE_MEMMAP_ACPI_NVS 3
source
#define LIMINE_MEMMAP_BAD_MEMORY 4
source
#define LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE 5
source
#define LIMINE_MEMMAP_EXECUTABLE_AND_MODULES 6
source
#define LIMINE_MEMMAP_KERNEL_AND_MODULES 6
source
#define LIMINE_MEMMAP_FRAMEBUFFER 7
source
#define LIMINE_ENTRY_POINT_REQUEST
source
Expansion
#define LIMINE_ENTRY_POINT_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x13d86c035a1cd3e1, 0x2b0caa89d8f3026a}
#define LIMINE_EXECUTABLE_FILE_REQUEST
source
Expansion
#define LIMINE_EXECUTABLE_FILE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xad97e90e83f1ed67, 0x31eb5d1c5ff23b69}
#define LIMINE_KERNEL_FILE_REQUEST
source
Expansion
#define LIMINE_KERNEL_FILE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xad97e90e83f1ed67, 0x31eb5d1c5ff23b69}
#define LIMINE_MODULE_REQUEST
source
Expansion
#define LIMINE_MODULE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x3e7e279702be32af, 0xca1c4f3bd1280cee}
#define LIMINE_INTERNAL_MODULE_REQUIRED (1 << 0)
source
#define LIMINE_INTERNAL_MODULE_COMPRESSED (1 << 1)
source
#define LIMINE_RSDP_REQUEST
source
Expansion
#define LIMINE_RSDP_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xc5e77b6b397e7b43, 0x27637845accdcf3c}
#define LIMINE_SMBIOS_REQUEST
source
Expansion
#define LIMINE_SMBIOS_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x9e9046f11e095391, 0xaa4a520fefbde5ee}
#define LIMINE_EFI_SYSTEM_TABLE_REQUEST
source
Expansion
#define LIMINE_EFI_SYSTEM_TABLE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x5ceba5163eaaf6d6, 0x0a6981610cf65fcc}
#define LIMINE_EFI_MEMMAP_REQUEST
source
Expansion
#define LIMINE_EFI_MEMMAP_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x7df62a431d6872d5, 0xa4fcdfb3e57306c8}
#define LIMINE_DATE_AT_BOOT_REQUEST
source
Expansion
#define LIMINE_DATE_AT_BOOT_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x502746e184c088aa, 0xfbc5ec83e6327893}
#define LIMINE_BOOT_TIME_REQUEST
source
Expansion
#define LIMINE_BOOT_TIME_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x502746e184c088aa, 0xfbc5ec83e6327893}
#define LIMINE_EXECUTABLE_ADDRESS_REQUEST
source
Expansion
#define LIMINE_EXECUTABLE_ADDRESS_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x71ba76863cc55f63, 0xb2644a48c516a487}
#define LIMINE_KERNEL_ADDRESS_REQUEST
source
Expansion
#define LIMINE_KERNEL_ADDRESS_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x71ba76863cc55f63, 0xb2644a48c516a487}
#define LIMINE_DTB_REQUEST
source
Expansion
#define LIMINE_DTB_REQUEST \
    {LIMINE_COMMON_MAGIC, 0xb40ddb48fb54bac7, 0x545081493f81ffb7}
#define LIMINE_RISCV_BSP_HARTID_REQUEST
source
Expansion
#define LIMINE_RISCV_BSP_HARTID_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x1369359f025525f9, 0x2ff2a56178391bb6}
#define LIMINE_BOOTLOADER_PERFORMANCE_REQUEST
source
Expansion
#define LIMINE_BOOTLOADER_PERFORMANCE_REQUEST \
    {LIMINE_COMMON_MAGIC, 0x6b50ad9bf36d13ad, 0xdc4c7e88fc759e17}