Parcel/utility/inc/utility.h

72 lines
2.0 KiB
C

#ifndef PAC_UTILITY_H
#define PAC_UTILITY_H
typedef signed char i8_t;
typedef signed short i16_t;
typedef signed int i32_t;
typedef signed long i64_t;
typedef unsigned char u8_t;
typedef unsigned short u16_t;
typedef unsigned int u32_t;
typedef unsigned long u64_t;
typedef float f32_t;
typedef double f64_t;
typedef u32_t rune_t;
typedef u8_t bool_t;
#ifdef __PAC_32_BIT__
typedef u32_t usz_t;
typedef i32_t isz_t;
#else
typedef u64_t usz_t;
typedef i64_t isz_t;
#endif
#define TRUE (1)
#define FALSE (0)
#define NULL ((void *) 0)
bool_t pac_rune_is_lower_letter (rune_t rune);
bool_t pac_rune_is_upper_letter (rune_t rune);
bool_t pac_rune_is_letter (rune_t rune);
bool_t pac_rune_is_digit (rune_t rune);
bool_t pac_rune_is_blank (rune_t rune);
bool_t pac_rune_is_sign (rune_t rune);
void pac_memory_copy (void *destination, void *source, usz_t length);
void pac_memory_fill (void *region, usz_t len_region, u8_t byte);
void pac_memory_zero (void *region, usz_t len_region);
typedef struct pac_arena pac_arena_s;
struct pac_arena
{
usz_t len_allocation;
usz_t offset;
void *allocation;
pac_arena_s *continuation;
};
pac_arena_s pac_create_arena (usz_t size);
void pac_delete_arena (pac_arena_s arena);
void pac_free_arena (pac_arena_s *arena);
pac_arena_s * pac_new_arena (usz_t size);
void * pac_arena_alloc (pac_arena_s *arena, usz_t length);
#endif // PAC_UTILITY_H