#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__