/* * Copyright (C) 2025 Danny Holman * * This file is part of BoxOS, a free and open-source Unix-like operating * system. * * BoxOS is free software; you can redistribute it and/or modify under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * * BoxOS is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * BoxOS; if not, see . */ #ifndef SYS_BOOTPARAM_H #define SYS_BOOTPARAM_H #include #include #define FIRMWARE_UEFI 1 #define FIRMWARE_OSBI 2 #define MAX_CMDLINE_SIZE 1024 #define BOOTPARAM_MAGIC 0x424F4F54 // "BOOT" enum mem_type { MEM_USABLE, MEM_IO, MEM_ACPI, MEM_ACPI_RECLAIM, MEM_PERSIST, MEM_FIRMWARE, }; typedef struct mmap_entry { uint8_t mem_type; uint64_t num_pages; uintptr_t start; struct mmap_entry *next; } mmap_entry_t; typedef struct bootparam { uint32_t magic; uint32_t firmware_id; void *stack_ptr; void *heap_ptr; void *firmware_params; uint32_t num_mmap_entries; mmap_entry_t *mmap; char cmdline[MAX_CMDLINE_SIZE]; } bootparam_t; #endif