7#ifndef ZEPHYR_INCLUDE_SYS_CBPRINTF_CXX_H_
8#define ZEPHYR_INCLUDE_SYS_CBPRINTF_CXX_H_
12static inline int z_cbprintf_cxx_is_pchar(
char *,
bool const_as_fixed)
14 ARG_UNUSED(const_as_fixed);
18static inline int z_cbprintf_cxx_is_pchar(
const char *,
bool const_as_fixed)
20 return const_as_fixed ? 0 : 1;
23static inline int z_cbprintf_cxx_is_pchar(
volatile char *,
bool const_as_fixed)
25 ARG_UNUSED(const_as_fixed);
29static inline int z_cbprintf_cxx_is_pchar(
const volatile char *,
bool const_as_fixed)
31 ARG_UNUSED(const_as_fixed);
35static inline int z_cbprintf_cxx_is_pchar(
wchar_t *,
bool const_as_fixed)
37 ARG_UNUSED(const_as_fixed);
41static inline int z_cbprintf_cxx_is_pchar(
const wchar_t *,
bool const_as_fixed)
43 return const_as_fixed ? 0 : 1;
46static inline int z_cbprintf_cxx_is_pchar(
volatile wchar_t *,
bool const_as_fixed)
48 ARG_UNUSED(const_as_fixed);
52static inline int z_cbprintf_cxx_is_pchar(
const volatile wchar_t *,
bool const_as_fixed)
54 ARG_UNUSED(const_as_fixed);
58template <
typename T >
59static inline int z_cbprintf_cxx_is_pchar(T arg,
bool const_as_fixed)
62 _Pragma(
"GCC diagnostic push")
63 _Pragma("GCC diagnostic ignored \"-Wpointer-arith\"")
64 ARG_UNUSED(const_as_fixed);
66 _Pragma("GCC diagnostic pop")
70static inline
size_t z_cbprintf_cxx_arg_size(
float f)
74 return sizeof(double);
77static inline size_t z_cbprintf_cxx_arg_size(
void *
p)
81 return sizeof(
void *);
84template <
typename T >
85static inline size_t z_cbprintf_cxx_arg_size(T arg)
87 return sizeof(arg + 0);
91static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
float arg)
93 double d = (double)arg;
96 z_cbprintf_wcpy((
int *)dst, (
int *)
p,
sizeof(
d) /
sizeof(
int));
99static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
void *
p)
101 z_cbprintf_wcpy((
int *)dst, (
int *)&
p,
sizeof(
p) /
sizeof(
int));
104static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
char arg)
108 z_cbprintf_wcpy((
int *)dst, &tmp, 1);
111static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
unsigned char arg)
115 z_cbprintf_wcpy((
int *)dst, &tmp, 1);
118static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
signed char arg)
122 z_cbprintf_wcpy((
int *)dst, &tmp, 1);
125static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
short arg)
129 z_cbprintf_wcpy((
int *)dst, &tmp, 1);
132static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst,
unsigned short arg)
136 z_cbprintf_wcpy((
int *)dst, &tmp, 1);
139template <
typename T >
140static inline void z_cbprintf_cxx_store_arg(
uint8_t *dst, T arg)
142 size_t wlen = z_cbprintf_cxx_arg_size(arg) /
sizeof(int);
145 z_cbprintf_wcpy((
int *)dst, (
int *)
p, wlen);
149static inline int z_cbprintf_cxx_is_longdouble(
long double arg)
155template <
typename T >
156static inline int z_cbprintf_cxx_is_longdouble(T arg)
164static inline size_t z_cbprintf_cxx_alignment(
float arg)
171static inline size_t z_cbprintf_cxx_alignment(
double arg)
178static inline size_t z_cbprintf_cxx_alignment(
long double arg)
185static inline size_t z_cbprintf_cxx_alignment(
long long arg)
192static inline size_t z_cbprintf_cxx_alignment(
unsigned long long arg)
199template <
typename T >
200static inline size_t z_cbprintf_cxx_alignment(T arg)
irp nz macro MOVR cc d
Definition: asm-macro-32-bit-gnu.h:11
#define VA_STACK_MIN_ALIGN
Definition: cbprintf_internal.h:44
#define VA_STACK_ALIGN(type)
Definition: cbprintf_internal.h:48
#define MAX(a, b)
The larger value between a and b.
Definition: util.h:184
struct k_futex f
Definition: kobject.c:1324
struct k_pipe p
Definition: kobject.c:1316
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58