jabyengine/include/PSX/Overlay/overlay_declaration.hpp

16 lines
653 B
C++

#ifndef __JABYENGINE_OVERLAY_DECLARATION__H__
#define __JABYENGINE_OVERLAY_DECLARATION__H__
// 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) \
[[gnu::used]] \
const OverlayHeader __section(".header") overlay_header = {.execute = &function};
#define __declare_overlay_lbas(...) \
[[gnu::used]] \
const OverlayLBA __section(".header.lbas") overlay_lba[] = {__VA_ARGS__};
#endif //!__JABYENGINE_OVERLAY_DECLARATION__H__