Some worked done toward adding a storage support.
This commit is contained in:
90
base_core.h
90
base_core.h
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user