Add EDK2 FTW parser

This commit is contained in:
Nikolaj Schlej 2025-02-23 11:25:27 +07:00
parent e00fc916bb
commit 271465eb61
8 changed files with 331 additions and 6 deletions

105
common/generated/edk2_ftw.h Normal file
View file

@ -0,0 +1,105 @@
#pragma once
// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
#include "../kaitai/kaitaistruct.h"
#include <stdint.h>
#include <memory>
#if KAITAI_STRUCT_VERSION < 9000L
#error "Incompatible Kaitai Struct C++/STL API: version 0.9 or later is required"
#endif
class edk2_ftw_t : public kaitai::kstruct {
public:
edk2_ftw_t(kaitai::kstream* p__io, kaitai::kstruct* p__parent = nullptr, edk2_ftw_t* p__root = nullptr);
private:
void _read();
void _clean_up();
public:
~edk2_ftw_t();
private:
bool f_len_ftw_store_header_32;
int8_t m_len_ftw_store_header_32;
public:
int8_t len_ftw_store_header_32();
private:
bool f_len_ftw_store_header_64;
int8_t m_len_ftw_store_header_64;
public:
int8_t len_ftw_store_header_64();
private:
uint32_t m_signature;
std::string m_signature_main;
bool n_signature_main;
public:
bool _is_null_signature_main() { signature_main(); return n_signature_main; };
private:
std::string m_signature_edk2_working_block;
bool n_signature_edk2_working_block;
public:
bool _is_null_signature_edk2_working_block() { signature_edk2_working_block(); return n_signature_edk2_working_block; };
private:
std::string m_signature_vss2_working_block;
bool n_signature_vss2_working_block;
public:
bool _is_null_signature_vss2_working_block() { signature_vss2_working_block(); return n_signature_vss2_working_block; };
private:
uint32_t m_crc;
uint8_t m_state;
std::string m_reserved;
uint32_t m_len_write_queue_32;
uint32_t m_len_write_queue_64;
bool n_len_write_queue_64;
public:
bool _is_null_len_write_queue_64() { len_write_queue_64(); return n_len_write_queue_64; };
private:
std::string m_write_queue_32;
bool n_write_queue_32;
public:
bool _is_null_write_queue_32() { write_queue_32(); return n_write_queue_32; };
private:
std::string m_write_queue_64;
bool n_write_queue_64;
public:
bool _is_null_write_queue_64() { write_queue_64(); return n_write_queue_64; };
private:
edk2_ftw_t* m__root;
kaitai::kstruct* m__parent;
public:
uint32_t signature() const { return m_signature; }
std::string signature_main() const { return m_signature_main; }
std::string signature_edk2_working_block() const { return m_signature_edk2_working_block; }
std::string signature_vss2_working_block() const { return m_signature_vss2_working_block; }
uint32_t crc() const { return m_crc; }
uint8_t state() const { return m_state; }
std::string reserved() const { return m_reserved; }
uint32_t len_write_queue_32() const { return m_len_write_queue_32; }
uint32_t len_write_queue_64() const { return m_len_write_queue_64; }
std::string write_queue_32() const { return m_write_queue_32; }
std::string write_queue_64() const { return m_write_queue_64; }
edk2_ftw_t* _root() const { return m__root; }
kaitai::kstruct* _parent() const { return m__parent; }
};