Cover lbas

This commit is contained in:
jaby 2022-12-04 17:23:45 +01:00
parent 5320eab44d
commit 78bedd0e90
3 changed files with 19 additions and 12 deletions

View File

@ -1,13 +1,14 @@
#ifndef __JABYENGINE_OVERLAY__H__
#define __JABYENGINE_OVERLAY__H__
#ifndef __JABYENGINE_OVERLAY__HPP__
#define __JABYENGINE_OVERLAY__HPP__
#include "../../stdint.h"
typedef struct __attribute__((packed)) {
void (*execute)();
void (*execute)();
uint16_t lba_size;
} OverlayHeader;
typedef struct __attribute__((packed)) {
uint16_t lba;
uint16_t size;
} OverlayLBA;
#endif //!__JABYENGINE_OVERLAY__H__
#endif //!__JABYENGINE_OVERLAY__HPP__

View File

@ -1,16 +1,14 @@
#ifndef __JABYENGINE_OVERLAY_DECLARATION__H__
#define __JABYENGINE_OVERLAY_DECLARATION__H__
#ifndef __JABYENGINE_OVERLAY_DECLARATION__HPP__
#define __JABYENGINE_OVERLAY_DECLARATION__HPP__
// No include here because this header should be included in a namespace and we don't want multiple namespace definitions of OverlayHeader and OverlayLBA
extern const OverlayHeader overlay_header;
extern const OverlayLBA overlay_lba[];
#define __declare_overlay_header(function) \
#define __declare_overlay_header(function, enum_struct) \
[[gnu::used]] \
const OverlayHeader __section(".header") overlay_header = {.execute = &function};
#define __declare_overlay_lbas(...) \
const OverlayHeader __section(".header") overlay_header = {.execute = &function, .lba_size = static_cast<uint16_t>(enum_struct::EndOfRequest)}; \
[[gnu::used]] \
const OverlayLBA __section(".header.lbas") overlay_lba[] = {__VA_ARGS__};
#endif //!__JABYENGINE_OVERLAY_DECLARATION__H__
const OverlayLBA __section(".header.lbas") overlay_lba[static_cast<int>(enum_struct::EndOfRequest)] = {0}
#endif //!__JABYENGINE_OVERLAY_DECLARATION__HPP__

View File

@ -0,0 +1,8 @@
#ifndef __JABYENGINE_OVERLAY_LBA__HPP__
#define __JABYENGINE_OVERLAY_LBA__HPP__
#define __jabyengine_start_lba_request
#define __jabyengine_request_lba_for(name, file) name
#define __jabyengine_end_lba_request EndOfRequest
#endif //!__JABYENGINE_OVERLAY_LBA__HPP__