clear remaining 32 reserved bytes

This commit is contained in:
Triss 2021-08-26 20:29:01 +02:00
parent 07db20ecb6
commit 383dcc4ea9
3 changed files with 8 additions and 2 deletions

View File

@ -53,7 +53,7 @@ class StorageInfo(NamedTuple):
mag = b[:16]
ver, cm, nm = struct.unpack('<HBB', b[16:20])
res = b[20:28]
res = b[20:28] + b[245-32:]
d2tab = struct.unpack('<I', b[28:32])
mdat = StorageInfoMode.list_from_bytes(b[32:256-32])

View File

@ -48,13 +48,18 @@ __attribute__((__packed__)) struct mode_data {
#define MAX_MDT_ELEMENTS ((256 - 64) / sizeof(struct mode_data)) /* should be 16 */
__attribute__((__packed__)) struct storage_header {
// +0
uint8_t magic[STORAGE_MAGIC_LEN];
// +16
uint16_t fwversion;
uint8_t curmode;
uint8_t nmodes; // *stored* modes, not modes it knows of
uint8_t reserved[8];
uint32_t table_djb2;
struct mode_data mode_data_table[MAX_MDT_ELEMENTS];
// +32
struct mode_data mode_data_table[MAX_MDT_ELEMENTS]; // 192 bytes in size
// +224
uint8_t reserved2[32];
};
// TODO: static assert sizeof(struct storage_header) == 256

View File

@ -28,6 +28,7 @@ static size_t storage_allocate_new(void) {
memcpy(header_tmp.magic, STORAGE_MAGIC, STORAGE_MAGIC_LEN);
memset(header_tmp.reserved, 0xff, sizeof(header_tmp.reserved));
memset(header_tmp.reserved2, 0xff, sizeof(header_tmp.reserved2));
memset(header_tmp.mode_data_table, 0xff, sizeof(header_tmp.mode_data_table));
header_tmp.fwversion = STORAGE_VER;