Some worked done toward adding a storage support.

This commit is contained in:
2026-02-07 01:40:29 -08:00
parent 0201a2ab95
commit 420df8e615
2 changed files with 146 additions and 51 deletions

View File

@@ -868,31 +868,31 @@ struct FileProperties
////////////////////////////////
//~ rjf: Safe Casts
internal U16 safe_cast_u16(U32 x);
internal U32 safe_cast_u32(U64 x);
internal S32 safe_cast_s32(S64 x);
/* internal U16 safe_cast_u16(U32 x); */
/* internal U32 safe_cast_u32(U64 x); */
/* internal S32 safe_cast_s32(S64 x); */
////////////////////////////////
//~ rjf: Large Base Type Functions
internal U128 u128_zero(void);
internal U128 u128_make(U64 v0, U64 v1);
internal B32 u128_match(U128 a, U128 b);
/* internal U128 u128_zero(void); */
/* internal U128 u128_make(U64 v0, U64 v1); */
/* internal B32 u128_match(U128 a, U128 b); */
////////////////////////////////
//~ rjf: Bit Patterns
internal U32 u32_from_u64_saturate(U64 x);
internal U64 u64_up_to_pow2(U64 x);
internal S32 extend_sign32(U32 x, U32 size);
internal S64 extend_sign64(U64 x, U64 size);
/* internal U32 u32_from_u64_saturate(U64 x); */
/* internal U64 u64_up_to_pow2(U64 x); */
/* internal S32 extend_sign32(U32 x, U32 size); */
/* internal S64 extend_sign64(U64 x, U64 size); */
internal F32 inf32(void);
internal F32 neg_inf32(void);
/* internal F32 inf32(void); */
/* internal F32 neg_inf32(void); */
internal U16 bswap_u16(U16 x);
internal U32 bswap_u32(U32 x);
internal U64 bswap_u64(U64 x);
/* internal U16 bswap_u16(U16 x); */
/* internal U32 bswap_u32(U32 x); */
/* internal U64 bswap_u64(U64 x); */
#if ARCH_LITTLE_ENDIAN
# define from_be_u16(x) bswap_u16(x)
@@ -904,13 +904,13 @@ internal U64 bswap_u64(U64 x);
# define from_be_u64(x) (x)
#endif
internal U64 count_bits_set32(U32 val);
internal U64 count_bits_set64(U64 val);
/* internal U64 count_bits_set32(U32 val); */
/* internal U64 count_bits_set64(U64 val); */
internal U64 ctz32(U32 val);
internal U64 ctz64(U64 val);
internal U64 clz32(U32 val);
internal U64 clz64(U64 val);
/* internal U64 ctz32(U32 val); */
/* internal U64 ctz64(U64 val); */
/* internal U64 clz32(U32 val); */
/* internal U64 clz64(U64 val); */
////////////////////////////////
//~ rjf: Enum -> Sign
@@ -921,43 +921,43 @@ internal U64 clz64(U64 val);
////////////////////////////////
//~ rjf: Memory Functions
internal B32 memory_is_zero(void *ptr, U64 size);
/* internal B32 memory_is_zero(void *ptr, U64 size); */
////////////////////////////////
//~ rjf: Text 2D Coordinate/Range Functions
internal TxtPt txt_pt(S64 line, S64 column);
internal B32 txt_pt_match(TxtPt a, TxtPt b);
internal B32 txt_pt_less_than(TxtPt a, TxtPt b);
internal TxtPt txt_pt_min(TxtPt a, TxtPt b);
internal TxtPt txt_pt_max(TxtPt a, TxtPt b);
internal TxtRng txt_rng(TxtPt min, TxtPt max);
internal TxtRng txt_rng_intersect(TxtRng a, TxtRng b);
internal TxtRng txt_rng_union(TxtRng a, TxtRng b);
internal B32 txt_rng_contains(TxtRng r, TxtPt pt);
/* internal TxtPt txt_pt(S64 line, S64 column); */
/* internal B32 txt_pt_match(TxtPt a, TxtPt b); */
/* internal B32 txt_pt_less_than(TxtPt a, TxtPt b); */
/* internal TxtPt txt_pt_min(TxtPt a, TxtPt b); */
/* internal TxtPt txt_pt_max(TxtPt a, TxtPt b); */
/* internal TxtRng txt_rng(TxtPt min, TxtPt max); */
/* internal TxtRng txt_rng_intersect(TxtRng a, TxtRng b); */
/* internal TxtRng txt_rng_union(TxtRng a, TxtRng b); */
/* internal B32 txt_rng_contains(TxtRng r, TxtPt pt); */
////////////////////////////////
//~ rjf: Toolchain/Environment Enum Functions
internal U64 bit_size_from_arch(Arch arch);
internal U64 byte_size_from_arch(Arch arch);
internal U64 max_instruction_size_from_arch(Arch arch);
/* internal U64 bit_size_from_arch(Arch arch); */
/* internal U64 byte_size_from_arch(Arch arch); */
/* internal U64 max_instruction_size_from_arch(Arch arch); */
////////////////////////////////
//~ rjf: Time Functions
internal DenseTime dense_time_from_date_time(DateTime date_time);
internal DateTime date_time_from_dense_time(DenseTime time);
internal DateTime date_time_from_micro_seconds(U64 time);
internal DateTime date_time_from_unix_time(U64 unix_time);
/* internal DenseTime dense_time_from_date_time(DateTime date_time); */
/* internal DateTime date_time_from_dense_time(DenseTime time); */
/* internal DateTime date_time_from_micro_seconds(U64 time); */
/* internal DateTime date_time_from_unix_time(U64 unix_time); */
////////////////////////////////
//~ rjf: Non-Fancy Ring Buffer Reads/Writes
internal U64 ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size);
internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size);
#define ring_write_struct(ring_base, ring_size, ring_pos, ptr) ring_write((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr)))
#define ring_read_struct(ring_base, ring_size, ring_pos, ptr) ring_read((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr)))
/* internal U64 ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size); */
/* internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size); */
/* #define ring_write_struct(ring_base, ring_size, ring_pos, ptr) ring_write((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) */
/* #define ring_read_struct(ring_base, ring_size, ring_pos, ptr) ring_read((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) */
////////////////////////////////
//~ rjf: Sorts
@@ -966,11 +966,11 @@ internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_dat
////////////////////////////////
internal U64 u64_array_bsearch(U64 *arr, U64 count, U64 value);
/* internal U64 u64_array_bsearch(U64 *arr, U64 count, U64 value); */
////////////////////////////////
internal U64 index_of_zero_u32(U32 *ptr, U64 count);
internal U64 index_of_zero_u64(U64 *ptr, U64 count);
/* internal U64 index_of_zero_u32(U32 *ptr, U64 count); */
/* internal U64 index_of_zero_u64(U64 *ptr, U64 count); */
#endif // BASE_CORE_H