replace pre-processor defines in bin.h with enums

any uses of cluster size ids are now clearly signposted by using
enum ec3_cluster_size, while any uses of cluster sizes in bytes
will use size_t.
This commit is contained in:
2025-02-24 15:48:36 +00:00
parent 2bd030f13b
commit 9847f093fc
3 changed files with 41 additions and 28 deletions

View File

@@ -5,36 +5,48 @@
#include <blue/core/endian.h> #include <blue/core/endian.h>
#define EC3_SIGNATURE 0x45433358 #define EC3_SIGNATURE 0x45433358
#define EC3_VERSION_1_0 0x0100 enum ec3_image_version {
EC3_VERSION_1_0 = 0x0100,
};
#define EC3_CLUSTER_4K 0x00u enum ec3_cluster_size {
#define EC3_CLUSTER_8K 0x01u EC3_CLUSTER_4K = 0x00u,
#define EC3_CLUSTER_16K 0x02u EC3_CLUSTER_8K = 0x01u,
#define EC3_CLUSTER_32K 0x03u EC3_CLUSTER_16K = 0x02u,
#define EC3_CLUSTER_64K 0x04u EC3_CLUSTER_32K = 0x03u,
EC3_CLUSTER_64K = 0x04u
};
#define EC3_COMPRESSION_NONE 0x00u enum ec3_compression_function {
#define EC3_COMPRESSION_ZSTD 0x01u EC3_COMPRESSION_NONE = 0x00u,
EC3_COMPRESSION_ZSTD = 0x01u
};
#define EC3_ENCRYPTION_NONE 0x00u enum ec3_encryption_function {
#define EC3_ENCRYPTION_AES256 0x01u EC3_ENCRYPTION_NONE = 0x00u,
EC3_ENCRYPTION_AES256 = 0x01u
};
#define EC3_TAG_VOLU 0x564F4C55 enum ec3_tag_type {
#define EC3_TAG_CTAB 0x43544142 EC3_TAG_VOLU = 0x564F4C55,
#define EC3_TAG_CDAT 0x43444154 EC3_TAG_CTAB = 0x43544142,
#define EC3_TAG_XATR 0x58415452 EC3_TAG_CDAT = 0x43444154,
#define EC3_TAG_STAB 0x53544142 EC3_TAG_XATR = 0x58415452,
#define EC3_TAG_MFST 0x4D465354 EC3_TAG_STAB = 0x53544142,
#define EC3_TAG_BLOB 0x424C4F42 EC3_TAG_MFST = 0x4D465354,
#define EC3_TAG_EXEC 0x45584543 EC3_TAG_BLOB = 0x424C4F42,
#define EC3_TAG_CERT 0x43455254 EC3_TAG_EXEC = 0x45584543,
#define EC3_TAG_CSIG 0x43534947 EC3_TAG_CERT = 0x43455254,
EC3_TAG_CSIG = 0x43534947
};
#define EC3_TAG_SIGNED 0x00000001u enum ec3_tag_flags {
#define EC3_TAG_COMPRESSED 0x00000002u EC3_TAG_SIGNED = 0x00000001u,
#define EC3_TAG_ENCRYPTED 0x00000004u EC3_TAG_COMPRESSED = 0x00000002u,
EC3_TAG_ENCRYPTED = 0x00000004u
};
#define EC3_INVALID_OFFSET 0xFFFFFFFFu #define EC3_INVALID_OFFSET 0xFFFFFFFFu

View File

@@ -319,7 +319,7 @@ enum ec3_status cluster_table_get_group(
return EC3_SUCCESS; return EC3_SUCCESS;
} }
size_t ec3_cluster_size_id_to_bytes(unsigned int v) size_t ec3_cluster_size_id_to_bytes(enum ec3_cluster_size v)
{ {
if (v >= nr_cluster_sizes) { if (v >= nr_cluster_sizes) {
return 0; return 0;
@@ -328,7 +328,7 @@ size_t ec3_cluster_size_id_to_bytes(unsigned int v)
return cluster_sizes[v]; return cluster_sizes[v];
} }
unsigned int ec3_cluster_size_bytes_to_id(size_t bytes) enum ec3_cluster_size ec3_cluster_size_bytes_to_id(size_t bytes)
{ {
for (size_t i = 0; i < nr_cluster_sizes; i++) { for (size_t i = 0; i < nr_cluster_sizes; i++) {
if (cluster_sizes[i] == bytes) { if (cluster_sizes[i] == bytes) {

View File

@@ -2,6 +2,7 @@
#define CLUSTER_H_ #define CLUSTER_H_
#include "b-tree.h" #include "b-tree.h"
#include "bin.h"
struct b_file; struct b_file;
@@ -46,7 +47,7 @@ extern enum ec3_status cluster_table_get_group(
unsigned long index, unsigned long index,
struct ec3_cluster_group *out); struct ec3_cluster_group *out);
extern size_t ec3_cluster_size_id_to_bytes(unsigned int v); extern size_t ec3_cluster_size_id_to_bytes(enum ec3_cluster_size size);
extern unsigned int ec3_cluster_size_bytes_to_id(size_t v); extern enum ec3_cluster_size ec3_cluster_size_bytes_to_id(size_t v);
#endif #endif