libcute
0.1
Loading...
Searching...
No Matches
include
nostd.h
1
#pragma once
2
3
#include <stdarg.h>
4
#include <stdbool.h>
5
#include <stddef.h>
6
#include <stdint.h>
7
#include "
macro.h
"
8
#ifndef CU_FREESTANDING
9
#include <stdio.h>
10
#endif
11
12
#ifdef __cplusplus
13
extern
"C"
{
14
#endif
15
#if CU_PLAT_WINDOWS
16
// Microsoft doesn't define max_align_t in C, so we fake it
17
typedef
struct
{
18
long
long
ll;
19
long
double
ld;
20
} cu_max_align_t;
21
#else
22
#include <stddef.h>
23
typedef
max_align_t cu_max_align_t;
24
#endif
25
27
typedef
struct
cu_Slice
{
28
void
*
ptr
;
29
size_t
length
;
30
}
cu_Slice
;
31
33
cu_Slice
cu_Slice_create(
void
*ptr,
size_t
length);
34
#define CU_SLICE_CSTR(s) cu_Slice_create((void *)(s), cu_CString_length(s))
35
36
void
cu_abort(
void
);
37
#ifndef CU_FREESTANDING
38
#define cu_panic_handler(...) \
39
do { \
40
fprintf(stderr, "Panic: "); \
41
fprintf(stderr, __VA_ARGS__); \
42
fprintf(stderr, "\n"); \
43
cu_abort(); \
44
} while (0);
45
// intentionally NO else case if we are building for freestanding the user has
46
// to define their own panic handler like rusts #[panic_handler]
47
#endif
48
49
void
cu_Memory_memmove(
void
*dest,
cu_Slice
src);
50
void
cu_Memory_smemmove(
cu_Slice
dest,
cu_Slice
src);
51
void
cu_Memory_memcpy(
void
*dest,
cu_Slice
src);
52
void
cu_Memory_smemcpy(
cu_Slice
dest,
cu_Slice
src);
53
void
cu_Memory_memset(
void
*dest,
int
value,
size_t
size);
54
bool
cu_Memory_memcmp(
cu_Slice
a,
cu_Slice
b);
55
56
size_t
cu_CString_length(
const
char
*cstr);
57
int
cu_CString_cmp(
const
char
*a,
const
char
*b);
58
int
cu_CString_vsnprintf(
char
*buf,
size_t
size,
const
char
*fmt, va_list args);
59
int
cu_CString_snprintf(
char
*buf,
size_t
size,
const
char
*fmt, ...);
60
int
cu_CString_vsprintf(
char
*buf,
const
char
*fmt, va_list args);
61
int
cu_CString_sprintf(
char
*buf,
const
char
*fmt, ...);
62
unsigned
long
cu_CString_strtoul(
const
char
*nptr,
char
**endptr,
int
base);
63
64
#ifdef __cplusplus
65
}
66
#endif
macro.h
cu_Slice
Definition
nostd.h:27
cu_Slice::length
size_t length
Definition
nostd.h:29
cu_Slice::ptr
void * ptr
Definition
nostd.h:28
Generated by
1.9.8