diff --git a/src/bin.h b/src/bin.h index 0e9929b..b06ca65 100644 --- a/src/bin.h +++ b/src/bin.h @@ -5,36 +5,48 @@ #include -#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 -#define EC3_CLUSTER_8K 0x01u -#define EC3_CLUSTER_16K 0x02u -#define EC3_CLUSTER_32K 0x03u -#define EC3_CLUSTER_64K 0x04u +enum ec3_cluster_size { + EC3_CLUSTER_4K = 0x00u, + EC3_CLUSTER_8K = 0x01u, + EC3_CLUSTER_16K = 0x02u, + EC3_CLUSTER_32K = 0x03u, + EC3_CLUSTER_64K = 0x04u +}; -#define EC3_COMPRESSION_NONE 0x00u -#define EC3_COMPRESSION_ZSTD 0x01u +enum ec3_compression_function { + EC3_COMPRESSION_NONE = 0x00u, + EC3_COMPRESSION_ZSTD = 0x01u +}; -#define EC3_ENCRYPTION_NONE 0x00u -#define EC3_ENCRYPTION_AES256 0x01u +enum ec3_encryption_function { + EC3_ENCRYPTION_NONE = 0x00u, + EC3_ENCRYPTION_AES256 = 0x01u +}; -#define EC3_TAG_VOLU 0x564F4C55 -#define EC3_TAG_CTAB 0x43544142 -#define EC3_TAG_CDAT 0x43444154 -#define EC3_TAG_XATR 0x58415452 -#define EC3_TAG_STAB 0x53544142 -#define EC3_TAG_MFST 0x4D465354 -#define EC3_TAG_BLOB 0x424C4F42 -#define EC3_TAG_EXEC 0x45584543 -#define EC3_TAG_CERT 0x43455254 -#define EC3_TAG_CSIG 0x43534947 +enum ec3_tag_type { + EC3_TAG_VOLU = 0x564F4C55, + EC3_TAG_CTAB = 0x43544142, + EC3_TAG_CDAT = 0x43444154, + EC3_TAG_XATR = 0x58415452, + EC3_TAG_STAB = 0x53544142, + EC3_TAG_MFST = 0x4D465354, + EC3_TAG_BLOB = 0x424C4F42, + EC3_TAG_EXEC = 0x45584543, + EC3_TAG_CERT = 0x43455254, + EC3_TAG_CSIG = 0x43534947 +}; -#define EC3_TAG_SIGNED 0x00000001u -#define EC3_TAG_COMPRESSED 0x00000002u -#define EC3_TAG_ENCRYPTED 0x00000004u +enum ec3_tag_flags { + EC3_TAG_SIGNED = 0x00000001u, + EC3_TAG_COMPRESSED = 0x00000002u, + EC3_TAG_ENCRYPTED = 0x00000004u +}; #define EC3_INVALID_OFFSET 0xFFFFFFFFu diff --git a/src/cluster-table.c b/src/cluster-table.c index 794c2dd..e317d69 100644 --- a/src/cluster-table.c +++ b/src/cluster-table.c @@ -319,7 +319,7 @@ enum ec3_status cluster_table_get_group( 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) { return 0; @@ -328,7 +328,7 @@ size_t ec3_cluster_size_id_to_bytes(unsigned int 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++) { if (cluster_sizes[i] == bytes) { diff --git a/src/cluster-table.h b/src/cluster-table.h index a37c3d6..edd1ac4 100644 --- a/src/cluster-table.h +++ b/src/cluster-table.h @@ -2,6 +2,7 @@ #define CLUSTER_H_ #include "b-tree.h" +#include "bin.h" struct b_file; @@ -46,7 +47,7 @@ extern enum ec3_status cluster_table_get_group( unsigned long index, struct ec3_cluster_group *out); -extern size_t ec3_cluster_size_id_to_bytes(unsigned int v); -extern unsigned int ec3_cluster_size_bytes_to_id(size_t v); +extern size_t ec3_cluster_size_id_to_bytes(enum ec3_cluster_size size); +extern enum ec3_cluster_size ec3_cluster_size_bytes_to_id(size_t v); #endif