Commit graph

69 commits

Author SHA1 Message Date
mykola2312
66ecb9d7e4 implement _cu_memcmp in AArch64 2022-05-19 01:31:33 +03:00
mykola2312
219bfa538d implement _cu_memmove in AArch64 2022-05-19 01:04:20 +03:00
mykola2312
a80088be55 implement _cu_memcpy in AArch64 2022-05-19 00:53:44 +03:00
mykola2312
9a9c972e24 implement hw_bswap32 and hw_bswap64 for AArch64 via rev instruction 2022-05-18 22:58:29 +03:00
mykola2312
3f84f3e163 implement AArch64 in CMake, prepare for AArch64 2022-05-18 22:52:38 +03:00
mykola2312
53ff61b659 update README.md 2022-05-18 06:44:08 +03:00
mykola2312
40864beb12 make cutil use internal dynamic memory allocator if there is no stdlib that provides it 2022-05-18 06:40:35 +03:00
mykola2312
ebef59e3da implement heap_realloc 2022-05-18 06:32:22 +03:00
mykola2312
3f01b5abfd dynamic memory allocator - implement heap_alloc & heap_free, heap_join and heap_split 2022-05-18 05:59:23 +03:00
mykola2312
be897d4d5a update README.md 2022-05-17 05:26:26 +03:00
mykola2312
b03cf8ec73 fix code spacings 2022-05-17 05:24:11 +03:00
mykola2312
b80fe62700 write documentating commentary for cu_sprintf & cu_sscanf in string.h header. test - works fine 2022-05-17 05:10:51 +03:00
mykola2312
3591102cd5 fix cu_sprintf cu_va_arg starting index so it does parse right arguments 2022-05-17 04:53:55 +03:00
mykola2312
fa5aa1446c test cu_sprintf & cu_sscanf 2022-05-17 04:45:39 +03:00
mykola2312
c7cce44067 implement cu_sprintf & cu_sscanf, also cu_(i/u/x)prints, cu_ato(i/u) 2022-05-17 04:35:02 +03:00
mykola2312
261322aaba add redundant includes for stdint.h and stddef.h when compiling with stdlib - necessary for IDE error-checking 2022-05-17 02:47:11 +03:00
mykola2312
fdae28a2d8 update README.md 2022-05-17 02:44:54 +03:00
mykola2312
8573d49455 test new _cu_memcmp and string functions 2022-05-17 02:41:27 +03:00
mykola2312
752d263d9c implement std functions for string processing & text converting multi-byte (UTF-8) character set to double-byte character set and vise-versa 2022-05-17 02:36:16 +03:00
mykola2312
371c4bb518 implement _cu_memcmp and cu_memcmp function-holder 2022-05-17 02:32:37 +03:00
mykola2312
a07e2d6f01 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
mykola2312
f744ec0f35 make cutil work without stdlib via CMake option NOSTDLIB=ON, using internal implementations 2022-05-17 01:57:18 +03:00
mykola2312
c11dd9aede update README.md 2022-05-15 23:14:41 +03:00
mykola2312
6864acb832 implement va_list - variable arguments 2022-05-15 23:13:42 +03:00
mykola2312
9eafc640fd fix _cu_memmove in assembly, now it's byte-by-byte moving 2022-05-15 22:23:48 +03:00
mykola2312
4dc9fe3a55 try assembly memmove, doesn't work because granularity of move 2022-05-15 21:19:38 +03:00
mykola2312
bdc6bd6b20 define and replace integer types independent from stdlib 2022-05-11 23:44:32 +03:00
mykola2312
6d2d8d0a0d implement _cu_memmove - memory moving without buffer 2022-05-11 20:44:24 +03:00
mykola2312
eb6f5cb7c5 fix cu_memtest so it will byte-align test if size less than word 2022-05-11 19:56:20 +03:00
mykola2312
9629e3630a update README.md 2022-05-11 19:54:00 +03:00
mykola2312
3229779aff implement x86-64 assembly-optimized functions _cu_memcpy, _cu_memset, cu_memzero 2022-05-11 19:51:24 +03:00
mykola2312
f2a1dddbca implement cu_memtest in x86-64 assembly in more efficient way that C does 2022-05-11 19:18:45 +03:00
mykola2312
0b610097b4 add achitecture-dependent assembly to build, implement hardware byte-swapping 2022-05-11 18:48:46 +03:00
mykola2312
579f9281e0 update README.md with new functionality description 2022-05-03 09:10:58 +03:00
mykola2312
e59744e300 implement zero-terminated arrays, which are terminated by zeroed item (cu_memtest with item size) 2022-05-03 09:07:00 +03:00
mykola2312
0067951bdf implement cu_memtest for cheacking if memory is zeroed 2022-05-03 08:56:47 +03:00
mykola2312
3c0de35e2c test struct & value functionality, implement struct_size 2022-05-03 08:18:27 +03:00
mykola2312
1619e3234e fix value_offset 2022-05-03 07:59:34 +03:00
mykola2312
900341c5b7 struct & value 5 2022-05-03 07:55:36 +03:00
mykola2312
9fb3337d59 change value_get name 2022-05-03 07:46:41 +03:00
mykola2312
723ceb272d value 5: implement value_size, value_array_size, value_offset and value_get 2022-05-03 07:45:35 +03:00
mykola2312
99daecee2e struct & value 4 2022-05-03 07:38:26 +03:00
mykola2312
f2b04e7514 struct 3 2022-05-03 07:18:21 +03:00
mykola2312
de923a2a0d struct 2 2022-05-03 03:29:55 +03:00
mykola2312
a02e91bfa3 define macros for struct members declaration 2022-05-03 02:55:38 +03:00
mykola2312
1418709bdf struct 1 2022-05-03 01:13:03 +03:00
mykola2312
c3b659dce8 implement functions to convert from host byte-order to little-endian or big-endian, convert to network order which defined as CU_NETWORK_ORDER. 2022-04-29 08:07:37 +03:00
mykola2312
5432d8f889 redefine architecture list as macro so therefore it can be used in preprocessor expressions. implement hardware byte-swapping, detect compile-time hardware capabilties to do that. 2022-04-29 06:36:01 +03:00
mykola2312
20e7489866 optimize software byte-swapping 2022-04-29 05:51:17 +03:00
mykola2312
30f3fd04df implement software endianness byte-swapping 2022-04-29 04:48:48 +03:00