ReactOS 0.4.16-dev-1946-g52006dd
stdlib.h
Go to the documentation of this file.
1#pragma once
2
7#include <uacpi/kernel_api.h>
8
9#ifdef UACPI_USE_BUILTIN_STRING
10
11#ifndef uacpi_memcpy
12void *uacpi_memcpy(void *dest, const void *src, uacpi_size count);
13#endif
14
15#ifndef uacpi_memmove
16void *uacpi_memmove(void *dest, const void *src, uacpi_size count);
17#endif
18
19#ifndef uacpi_memset
21#endif
22
23#ifndef uacpi_memcmp
24uacpi_i32 uacpi_memcmp(const void *lhs, const void *rhs, uacpi_size count);
25#endif
26
27#else
28
29#ifndef uacpi_memcpy
30 #ifdef UACPI_COMPILER_HAS_BUILTIN_MEMCPY
31 #define uacpi_memcpy __builtin_memcpy
32 #else
33 extern void *memcpy(void *dest, const void *src, uacpi_size count);
34 #define uacpi_memcpy memcpy
35 #endif
36#endif
37
38#ifndef uacpi_memmove
39 #ifdef UACPI_COMPILER_HAS_BUILTIN_MEMMOVE
40 #define uacpi_memmove __builtin_memmove
41 #else
42 extern void *memmove(void *dest, const void *src, uacpi_size count);
43 #define uacpi_memmove memmove
44 #endif
45#endif
46
47#ifndef uacpi_memset
48 #ifdef UACPI_COMPILER_HAS_BUILTIN_MEMSET
49 #define uacpi_memset __builtin_memset
50 #else
51 extern void *memset(void *dest, int ch, uacpi_size count);
52 #define uacpi_memset memset
53 #endif
54#endif
55
56#ifndef uacpi_memcmp
57 #ifdef UACPI_COMPILER_HAS_BUILTIN_MEMCMP
58 #define uacpi_memcmp __builtin_memcmp
59 #else
60 extern int memcmp(const void *lhs, const void *rhs, uacpi_size count);
61 #define uacpi_memcmp memcmp
62 #endif
63#endif
64
65#endif
66
67#ifndef uacpi_strlen
69#endif
70
71#ifndef uacpi_strnlen
73#endif
74
75#ifndef uacpi_strcmp
76uacpi_i32 uacpi_strcmp(const uacpi_char *lhs, const uacpi_char *rhs);
77#endif
78
79#ifndef uacpi_snprintf
83);
84#endif
85
86#ifndef uacpi_vsnprintf
88 uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt,
89 uacpi_va_list vlist
90);
91#endif
92
93#ifdef UACPI_SIZED_FREES
94#define uacpi_free(mem, size) uacpi_kernel_free(mem, size)
95#else
96#define uacpi_free(mem, _) uacpi_kernel_free(mem)
97#endif
98
99#define uacpi_memzero(ptr, size) uacpi_memset(ptr, 0, size)
100
101#define UACPI_COMPARE(x, y, op) ((x) op (y) ? (x) : (y))
102#define UACPI_MIN(x, y) UACPI_COMPARE(x, y, <)
103#define UACPI_MAX(x, y) UACPI_COMPARE(x, y, >)
104
105#define UACPI_ALIGN_UP_MASK(x, mask) (((x) + (mask)) & ~(mask))
106#define UACPI_ALIGN_UP(x, val, type) UACPI_ALIGN_UP_MASK(x, (type)(val) - 1)
107
108#define UACPI_ALIGN_DOWN_MASK(x, mask) ((x) & ~(mask))
109#define UACPI_ALIGN_DOWN(x, val, type) UACPI_ALIGN_DOWN_MASK(x, (type)(val) - 1)
110
111#define UACPI_IS_ALIGNED_MASK(x, mask) (((x) & (mask)) == 0)
112#define UACPI_IS_ALIGNED(x, val, type) UACPI_IS_ALIGNED_MASK(x, (type)(val) - 1)
113
114#define UACPI_IS_POWER_OF_TWO(x, type) UACPI_IS_ALIGNED(x, x, type)
115
116void uacpi_memcpy_zerout(void *dst, const void *src,
117 uacpi_size dst_size, uacpi_size src_size);
118
119// Returns the one-based bit location of LSb or 0
121
122// Returns the one-based bit location of MSb or 0
124
125#ifndef UACPI_NATIVE_ALLOC_ZEROED
127#define uacpi_kernel_alloc_zeroed uacpi_builtin_alloc_zeroed
128#endif
uacpi_u8 uacpi_bit_scan_forward(uacpi_u64)
Definition: stdlib.c:124
uacpi_i32 uacpi_snprintf(uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt,...)
Definition: stdlib.c:661
uacpi_i32 uacpi_vsnprintf(uacpi_char *buffer, uacpi_size capacity, const uacpi_char *fmt, uacpi_va_list vlist)
Definition: stdlib.c:475
uacpi_i32 uacpi_strcmp(const uacpi_char *lhs, const uacpi_char *rhs)
Definition: stdlib.c:96
#define uacpi_memcmp
Definition: stdlib.h:61
#define uacpi_memcpy
Definition: stdlib.h:34
uacpi_size uacpi_strnlen(const uacpi_char *str, uacpi_size max)
Definition: stdlib.c:85
void * uacpi_builtin_alloc_zeroed(uacpi_size size)
Definition: stdlib.c:188
uacpi_u8 uacpi_bit_scan_backward(uacpi_u64)
Definition: stdlib.c:154
void uacpi_memcpy_zerout(void *dst, const void *src, uacpi_size dst_size, uacpi_size src_size)
Definition: stdlib.c:112
int memcmp(const void *lhs, const void *rhs, uacpi_size count)
Definition: memcmp.c:9
#define uacpi_memmove
Definition: stdlib.h:43
#define uacpi_memset
Definition: stdlib.h:52
uacpi_size uacpi_strlen(const uacpi_char *str)
Definition: stdlib.c:72
#define UACPI_PRINTF_DECL(fmt_idx, args_idx)
Definition: compiler.h:66
size_t uacpi_size
Definition: types.h:37
va_list uacpi_va_list
Definition: types.h:39
uint64_t uacpi_u64
Definition: types.h:22
char uacpi_char
Definition: types.h:44
int32_t uacpi_i32
Definition: types.h:26
uint8_t uacpi_u8
Definition: types.h:19
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLenum GLenum dst
Definition: glext.h:6340
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
static char * dest
Definition: rtl.c:135
const WCHAR * str
#define memset(x, y, z)
Definition: compat.h:39
Definition: dsound.c:943
#define max(a, b)
Definition: svc.c:63
#define const
Definition: zconf.h:233