forked from xt-sys/exectos
Redesign a way of storing module information; this allows to store more data in a single section, like license or a list of authors, as well as solves the problem with different module name lengths
This commit is contained in:
@@ -12,9 +12,17 @@
|
||||
#include <xttypes.h>
|
||||
|
||||
|
||||
/* Boot Loader module segment macros */
|
||||
#define XTBL_MODDEPS SEGMENT(".moddeps") CONST WCHAR XtBlpDeps[][9]
|
||||
#define XTBL_MODINFO SEGMENT(".modinfo") CONST WCHAR XtBlpInfo[]
|
||||
/* Boot Loader module information macros */
|
||||
#define MODULE_AUTHOR(_author) XTBL_MODULE_INFO(author, author, _author)
|
||||
#define MODULE_DEPENDENCY(_softdeps) XTBL_MODULE_INFO(softdeps, softdeps, _softdeps)
|
||||
#define MODULE_DESCRIPTION(_description) XTBL_MODULE_INFO(description, description, _description)
|
||||
#define MODULE_LICENSE(_license) XTBL_MODULE_INFO(license, license, _license)
|
||||
#define MODULE_VERSION(_version) XTBL_MODULE_INFO(version, version, _version)
|
||||
|
||||
/* Boot Loader module information segment macro */
|
||||
#define XTBL_MODULE_INFO(Tag, Name, Data) STATIC CONST WCHAR UNIQUE(Name)[] \
|
||||
USED SEGMENT(".modinfo") ALIGN(1) \
|
||||
= STRINGIFY(Tag) "=" Data
|
||||
|
||||
/* XTLDR directories */
|
||||
#define XTBL_LOADER_DIRECTORY_PATH L"\\EFI\\BOOT\\XTLDR\\"
|
||||
|
@@ -190,6 +190,13 @@ typedef struct _XTBL_MEMORY_MAPPING
|
||||
LOADER_MEMORY_TYPE MemoryType;
|
||||
} XTBL_MEMORY_MAPPING, *PXTBL_MEMORY_MAPPING;
|
||||
|
||||
/* XTLDR Module dependencies data */
|
||||
typedef struct _XTBL_MODULE_AUTHORS
|
||||
{
|
||||
LIST_ENTRY Flink;
|
||||
PWCHAR AuthorName;
|
||||
} XTBL_MODULE_AUTHORS, *PXTBL_MODULE_AUTHORS;
|
||||
|
||||
/* XTLDR Module dependencies data */
|
||||
typedef struct _XTBL_MODULE_DEPS
|
||||
{
|
||||
@@ -203,6 +210,9 @@ typedef struct _XTBL_MODULE_INFO
|
||||
LIST_ENTRY Flink;
|
||||
PWCHAR ModuleName;
|
||||
PWCHAR ModuleDescription;
|
||||
PWCHAR License;
|
||||
PWCHAR Version;
|
||||
LIST_ENTRY Authors;
|
||||
LIST_ENTRY Dependencies;
|
||||
PVOID ModuleBase;
|
||||
ULONGLONG ModuleSize;
|
||||
|
@@ -282,6 +282,7 @@ typedef struct _XTBL_FRAMEBUFFER_PROTOCOL XTBL_FRAMEBUFFER_PROTOCOL, *PXTBL_FRAM
|
||||
typedef struct _XTBL_KNOWN_BOOT_PROTOCOL XTBL_KNOWN_BOOT_PROTOCOL, *PXTBL_KNOWN_BOOT_PROTOCOL;
|
||||
typedef struct _XTBL_LOADER_PROTOCOL XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
|
||||
typedef struct _XTBL_MEMORY_MAPPING XTBL_MEMORY_MAPPING, *PXTBL_MEMORY_MAPPING;
|
||||
typedef struct _XTBL_MODULE_AUTHORS XTBL_MODULE_AUTHORS, *PXTBL_MODULE_AUTHORS;
|
||||
typedef struct _XTBL_MODULE_DEPS XTBL_MODULE_DEPS, *PXTBL_MODULE_DEPS;
|
||||
typedef struct _XTBL_MODULE_INFO XTBL_MODULE_INFO, *PXTBL_MODULE_INFO;
|
||||
typedef struct _XTBL_PAGE_MAPPING XTBL_PAGE_MAPPING, *PXTBL_PAGE_MAPPING;
|
||||
|
Reference in New Issue
Block a user