acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_c_memory.h
1#pragma once
2
3
4
5CLASS_DECL_ACME void * memory_set(void * p, ::i32 i, memsize iSize);
6CLASS_DECL_ACME void * memory_and(void * p, const void * point1, const void * point2, memsize iSize);
7CLASS_DECL_ACME void * memory_copy(void * dst, const void * src, memsize iSize);
8CLASS_DECL_ACME void * memory_transfer(void * dst, const void * src, memsize iSize);
9CLASS_DECL_ACME ::wide_character * wide_memory_copy(::wide_character * dst, const ::wide_character * src, memsize iSize);
10
11CLASS_DECL_ACME void * reverse_memory(void * p, memsize iSize);
12CLASS_DECL_ACME void * reverse_memory_copy(void * p, const void * point1, memsize iSize);
13
14
15CLASS_DECL_ACME ::std::strong_ordering memory_order(const void* sz1, const void* sz2, memsize iSize);
16
17CLASS_DECL_ACME ::std::strong_ordering _memory_order(const void* p1, const void* p2, memsize size);
18
19
20#ifdef __cplusplus
21
22
23inline void * zero(void * p, memsize size) { memory_set(p, 0, size); return p; }
24
25
26inline bool is_zero(const void * p, memsize iSize)
27{
28
29 ::u8 * pb = (::u8 *) p;
30
31 while(*pb == '\0' && iSize > 0)
32 {
33
34 pb++;
35
36 iSize--;
37
38 }
39
40 return iSize == 0;
41
42}
43
44
45
46
47//#define zero(array) (::zero(array, sizeof(array)))
48
49
50
51#endif
52
53
54
55
56
57
58
59
60