Prepare for supporting LBAs in persitent code

This commit is contained in:
2023-01-25 20:46:26 +01:00
parent b24a9085e1
commit 3851cecd9b
6 changed files with 44 additions and 23 deletions

View File

@@ -0,0 +1,16 @@
#ifndef __JABYENGINE_AUTO_LBA_HPP__
#define __JABYENGINE_AUTO_LBA_HPP__
#include "../../stdint.h"
namespace JabyEngine {
#define __jabyengine_start_lba_request
#define __jabyengine_request_lba_for(name, file) name
#define __jabyengine_end_lba_request EndOfRequest
struct __attribute__((packed)) AutoLBAEntry {
uint16_t lba;
uint16_t size_words;
};
}
#endif //!__JABYENGINE_AUTO_LBA_HPP__

View File

@@ -0,0 +1,9 @@
#ifndef __JABYENGINE_AUTO_LBA_DECLARATION_HPP__
#define __JABYENGINE_AUTO_LBA_DECLARATION_HPP__
extern const JabyEngine::AutoLBAEntry overlay_lba[];
#define __declare_lba_header(enum_struct) \
[[gnu::used]] \
const JabyEngine::AutoLBAEntry __section(".header.lbas") overlay_lba[static_cast<int>(enum_struct::EndOfRequest)] = {0}
#endif //!__JABYENGINE_AUTO_LBA_DECLARATION_HPP__