1 /* SPDX-License-Identifier: GPL-2.0-only or License-Ref-kk-custom */ 2 /* 3 * Copyright (C) 2021 Kernkonzept GmbH. 4 * Author(s): Adam Lackorzynski <adam@l4re.org> 5 */ 6 #pragma once 7 8 #include <l4/sys/l4int.h> 9 10 /** Flags for \c l4util_l4mod_mod.flags */ 11 enum l4util_l4mod_mod_info_flag // aka bootstraps: Mod_info_flags 12 { 13 L4util_l4mod_mod_flag_unspec = 0, 14 L4util_l4mod_mod_flag_kernel = 1, 15 L4util_l4mod_mod_flag_sigma0 = 2, 16 L4util_l4mod_mod_flag_roottask = 3, 17 L4util_l4mod_mod_flag_mask = 7 << 0, 18 }; 19 20 /** A single module. */ 21 typedef struct 22 { 23 l4_uint64_t flags; /**< Module flags (\c l4util_l4mod_mod_info_flag) */ 24 l4_uint64_t mod_start; /**< Starting address of module in memory. */ 25 l4_uint64_t mod_end; /**< End address of module in memory. */ 26 l4_uint64_t cmdline; /**< Module command line */ 27 } l4util_l4mod_mod; 28 29 /** Base module structure. */ 30 typedef struct 31 { 32 l4_uint64_t flags; /**< Flags */ 33 l4_uint64_t cmdline; /**< Pointer to kernel command line */ 34 l4_uint64_t mods_addr; /**< Module list */ 35 l4_uint32_t mods_count; /**< Number of modules */ 36 l4_uint32_t _pad; 37 38 /** 39 * VESA video info, valid if one of vbe_ctrl_info 40 * or vbe_mode_info is not zero. 41 */ 42 l4_uint64_t vbe_ctrl_info; /**< VESA video controller info */ 43 l4_uint64_t vbe_mode_info; /**< VESA video mode info */ 44 } l4util_l4mod_info; 45