From 8425590c3f8f91db659f8e87fa67598e4ccc7a8d Mon Sep 17 00:00:00 2001 From: Jaby Date: Sun, 4 Dec 2022 17:23:45 +0100 Subject: [PATCH] Cover lbas --- include/PSX/Overlay/overlay.hpp | 9 +++++---- include/PSX/Overlay/overlay_declaration.hpp | 14 ++++++-------- include/PSX/Overlay/overlay_lba.hpp | 8 ++++++++ 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 include/PSX/Overlay/overlay_lba.hpp diff --git a/include/PSX/Overlay/overlay.hpp b/include/PSX/Overlay/overlay.hpp index c1433e30..57aa6959 100644 --- a/include/PSX/Overlay/overlay.hpp +++ b/include/PSX/Overlay/overlay.hpp @@ -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__ \ No newline at end of file +#endif //!__JABYENGINE_OVERLAY__HPP__ \ No newline at end of file diff --git a/include/PSX/Overlay/overlay_declaration.hpp b/include/PSX/Overlay/overlay_declaration.hpp index 3a853b11..28c78fa9 100644 --- a/include/PSX/Overlay/overlay_declaration.hpp +++ b/include/PSX/Overlay/overlay_declaration.hpp @@ -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(enum_struct::EndOfRequest)}; \ [[gnu::used]] \ -const OverlayLBA __section(".header.lbas") overlay_lba[] = {__VA_ARGS__}; -#endif //!__JABYENGINE_OVERLAY_DECLARATION__H__ \ No newline at end of file +const OverlayLBA __section(".header.lbas") overlay_lba[static_cast(enum_struct::EndOfRequest)] = {0} +#endif //!__JABYENGINE_OVERLAY_DECLARATION__HPP__ \ No newline at end of file diff --git a/include/PSX/Overlay/overlay_lba.hpp b/include/PSX/Overlay/overlay_lba.hpp new file mode 100644 index 00000000..d86dd25d --- /dev/null +++ b/include/PSX/Overlay/overlay_lba.hpp @@ -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__ \ No newline at end of file