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