UEFITool/common/generated/dell_dvar.cpp
2025-04-26 01:14:13 +07:00

235 lines
5.8 KiB
C++

// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
#include "dell_dvar.h"
dell_dvar_t::dell_dvar_t(kaitai::kstream* p__io, kaitai::kstruct* p__parent, dell_dvar_t* p__root) : kaitai::kstruct(p__io) {
m__parent = p__parent;
m__root = this; (void)p__root;
m_entries = nullptr;
f_len_store = false;
f_flags = false;
f_data_offset = false;
_read();
}
void dell_dvar_t::_read() {
m_signature = m__io->read_bytes(4);
m_len_store_c = m__io->read_u4le();
m_flags_c = m__io->read_u1();
m_entries = std::unique_ptr<std::vector<std::unique_ptr<dvar_entry_t>>>(new std::vector<std::unique_ptr<dvar_entry_t>>());
{
int i = 0;
dvar_entry_t* _;
do {
_ = new dvar_entry_t(m__io, this, m__root);
m_entries->push_back(std::move(std::unique_ptr<dvar_entry_t>(_)));
i++;
} while (!(_->state_c() == 255));
}
}
dell_dvar_t::~dell_dvar_t() {
_clean_up();
}
void dell_dvar_t::_clean_up() {
}
dell_dvar_t::dvar_entry_t::dvar_entry_t(kaitai::kstream* p__io, dell_dvar_t* p__parent, dell_dvar_t* p__root) : kaitai::kstruct(p__io) {
m__parent = p__parent;
m__root = p__root;
f_namespace_id = false;
f_len_data_8 = false;
f_state = false;
f_len_data_16 = false;
f_attributes = false;
f_flags = false;
f_name_id_8 = false;
f_name_id_16 = false;
f_type = false;
_read();
}
void dell_dvar_t::dvar_entry_t::_read() {
m_state_c = m__io->read_u1();
n_flags_c = true;
if (state_c() != 255) {
n_flags_c = false;
m_flags_c = m__io->read_u1();
}
n_type_c = true;
if (state_c() != 255) {
n_type_c = false;
m_type_c = m__io->read_u1();
}
n_attributes_c = true;
if (state_c() != 255) {
n_attributes_c = false;
m_attributes_c = m__io->read_u1();
}
n_namespace_id_c = true;
if ( ((state_c() != 255) && ( ((flags() == 2) || (flags() == 6)) )) ) {
n_namespace_id_c = false;
m_namespace_id_c = m__io->read_u1();
}
n_namespace_guid = true;
if ( ((state_c() != 255) && (flags() == 6)) ) {
n_namespace_guid = false;
m_namespace_guid = m__io->read_bytes(16);
}
n_name_id_8_c = true;
if ( ((state_c() != 255) && (type() == 0)) ) {
n_name_id_8_c = false;
m_name_id_8_c = m__io->read_u1();
}
n_name_id_16_c = true;
if ( ((state_c() != 255) && ( ((type() == 4) || (type() == 5)) )) ) {
n_name_id_16_c = false;
m_name_id_16_c = m__io->read_u2le();
}
n_len_data_8_c = true;
if ( ((state_c() != 255) && ( ((type() == 0) || (type() == 4)) )) ) {
n_len_data_8_c = false;
m_len_data_8_c = m__io->read_u1();
}
n_len_data_16_c = true;
if ( ((state_c() != 255) && (type() == 5)) ) {
n_len_data_16_c = false;
m_len_data_16_c = m__io->read_u2le();
}
n_data_8 = true;
if ( ((state_c() != 255) && ( ((type() == 0) || (type() == 4)) )) ) {
n_data_8 = false;
m_data_8 = m__io->read_bytes(len_data_8());
}
n_data_16 = true;
if ( ((state_c() != 255) && (type() == 5)) ) {
n_data_16 = false;
m_data_16 = m__io->read_bytes(len_data_16());
}
}
dell_dvar_t::dvar_entry_t::~dvar_entry_t() {
_clean_up();
}
void dell_dvar_t::dvar_entry_t::_clean_up() {
if (!n_flags_c) {
}
if (!n_type_c) {
}
if (!n_attributes_c) {
}
if (!n_namespace_id_c) {
}
if (!n_namespace_guid) {
}
if (!n_name_id_8_c) {
}
if (!n_name_id_16_c) {
}
if (!n_len_data_8_c) {
}
if (!n_len_data_16_c) {
}
if (!n_data_8) {
}
if (!n_data_16) {
}
}
int32_t dell_dvar_t::dvar_entry_t::namespace_id() {
if (f_namespace_id)
return m_namespace_id;
m_namespace_id = (255 - namespace_id_c());
f_namespace_id = true;
return m_namespace_id;
}
int32_t dell_dvar_t::dvar_entry_t::len_data_8() {
if (f_len_data_8)
return m_len_data_8;
m_len_data_8 = (255 - len_data_8_c());
f_len_data_8 = true;
return m_len_data_8;
}
int32_t dell_dvar_t::dvar_entry_t::state() {
if (f_state)
return m_state;
m_state = (255 - state_c());
f_state = true;
return m_state;
}
int32_t dell_dvar_t::dvar_entry_t::len_data_16() {
if (f_len_data_16)
return m_len_data_16;
m_len_data_16 = (65535 - len_data_16_c());
f_len_data_16 = true;
return m_len_data_16;
}
int32_t dell_dvar_t::dvar_entry_t::attributes() {
if (f_attributes)
return m_attributes;
m_attributes = (255 - attributes_c());
f_attributes = true;
return m_attributes;
}
int32_t dell_dvar_t::dvar_entry_t::flags() {
if (f_flags)
return m_flags;
m_flags = (255 - flags_c());
f_flags = true;
return m_flags;
}
int32_t dell_dvar_t::dvar_entry_t::name_id_8() {
if (f_name_id_8)
return m_name_id_8;
m_name_id_8 = (255 - name_id_8_c());
f_name_id_8 = true;
return m_name_id_8;
}
int32_t dell_dvar_t::dvar_entry_t::name_id_16() {
if (f_name_id_16)
return m_name_id_16;
m_name_id_16 = (65535 - name_id_16_c());
f_name_id_16 = true;
return m_name_id_16;
}
int32_t dell_dvar_t::dvar_entry_t::type() {
if (f_type)
return m_type;
m_type = (255 - type_c());
f_type = true;
return m_type;
}
int32_t dell_dvar_t::len_store() {
if (f_len_store)
return m_len_store;
m_len_store = (4294967295UL - len_store_c());
f_len_store = true;
return m_len_store;
}
int32_t dell_dvar_t::flags() {
if (f_flags)
return m_flags;
m_flags = (255 - flags_c());
f_flags = true;
return m_flags;
}
int8_t dell_dvar_t::data_offset() {
if (f_data_offset)
return m_data_offset;
m_data_offset = 9;
f_data_offset = true;
return m_data_offset;
}