C util library
Find a file
2022-06-07 11:04:54 +03:00
arch implement SuperH4 support, building with custom stdlib (libc) 2022-06-07 10:23:57 +03:00
.gitignore initial commit 2022-04-16 16:22:31 +03:00
array.c bitmap 1 2022-04-19 23:39:51 +03:00
array.h update ifndef-define statements in every header with CUTIL_ prefix that already included files with matching defines will not collide 2022-05-17 02:14:28 +03:00
bitmap.c define and replace integer types independent from stdlib 2022-05-11 23:44:32 +03:00
bitmap.h update ifndef-define statements in every header with CUTIL_ prefix that already included files with matching defines will not collide 2022-05-17 02:14:28 +03:00
CMakeLists.txt fix cu_memcmp on x86_64 2022-06-07 11:00:02 +03:00
cutil.c remove unused __cu_memmove 2022-06-07 11:04:54 +03:00
cutil.h fix cu_memcmp on x86_64 2022-06-07 11:00:02 +03:00
cutypes.h implement ARMv7 different architecture profiles, for M profile Cortex-M4 - ARMv7E-M. TODO: Fix profile conflicts with cutil and test targets 2022-05-21 02:58:08 +03:00
endian.c implement _cu_memcpy in ARMv7, fix assembly alignment and enable hardware endianness byte-swapping 2022-05-21 05:41:13 +03:00
endian.h update ifndef-define statements in every header with CUTIL_ prefix that already included files with matching defines will not collide 2022-05-17 02:14:28 +03:00
heap.c fix heap_realloc that it will do aligned resize in mblock_t units 2022-05-24 23:15:58 +03:00
heap.h add prev and next block checking in heap_free 2022-05-24 21:54:00 +03:00
list.c define and replace integer types independent from stdlib 2022-05-11 23:44:32 +03:00
list.h update ifndef-define statements in every header with CUTIL_ prefix that already included files with matching defines will not collide 2022-05-17 02:14:28 +03:00
README.md update README.md 2022-05-24 23:44:31 +03:00
string.c implement va_list for ARMv7 - cu_va_start and cu_va_arg works now based on frame-pointer (r11) for variable arguments, indexed differently than x86 stack ABI does 2022-05-21 10:38:35 +03:00
string.h dynamic memory allocator - implement heap_alloc & heap_free, heap_join and heap_split 2022-05-18 05:59:23 +03:00
struct.c define and replace integer types independent from stdlib 2022-05-11 23:44:32 +03:00
struct.h update ifndef-define statements in every header with CUTIL_ prefix that already included files with matching defines will not collide 2022-05-17 02:14:28 +03:00
test.c update test 2022-05-24 23:18:36 +03:00
va_list.h implement SuperH4 support, building with custom stdlib (libc) 2022-06-07 10:23:57 +03:00

cutil

C library to implement

  • variable arguments
  • data structures like linked-lists, vector arrays, maps
  • bitmaps & bitwise operations
  • cross-platform oriented
  • assembler-level optimizations
  • architecture-dependent & hardware features
  • byte-order endianness detection, byte-swapping
  • dynamic memory allocator & internal heap management integrated
  • structure object members mapping, dynamic processing, endianness auto-converting
  • dynamic-length structures, members sizes which are determined by mapping or run-time object member value
  • string processing, independent implementations of sscanf (cu_sscanf) and sprintf (cu_sprintf)
  • text converting multi-byte (UTF-8) character set to double-byte character set and vise-versa

supported architectures

  • x86-64 (tested on real hardware)
  • ARMv8 AArch64 (tested on real hardware)
  • ARMv7 (tested on real hardware)