43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
/*
|
|
Generic linux std parts.
|
|
*/
|
|
|
|
#include "../def.h"
|
|
#include "../std.h"
|
|
#include "../str.h"
|
|
#include <stdarg.h>
|
|
#include <stdint.h>
|
|
|
|
void *com_std_alloc(void *ptr, size_t size) { return NULL; }
|
|
void com_std_assert(bool holds) {
|
|
/* TODO: Write line info to stderr as well. */
|
|
if (!holds)
|
|
com_std_exit(-1);
|
|
}
|
|
|
|
/* TODO: Figure out a way to make it easy to deal with. */
|
|
void com_std_printf(char const *fmt, ...) {
|
|
com_std_write((void *)1, fmt, com_str_ext_len(fmt));
|
|
}
|
|
|
|
void com_std_print_str(char const *str, uint32_t len, bool newline) {
|
|
com_std_write((void *)1, str, len);
|
|
if (newline)
|
|
com_std_write((void *)1, "\n", 1);
|
|
}
|
|
|
|
double com_std_sqrt(double v) { return __builtin_sqrt(v); }
|
|
double com_std_fabs(double v) { return __builtin_fabs(v); }
|
|
#if COM_DEF_COMPILER == COM_DEF_COMPILER_CLANG
|
|
double com_std_sin(double v) { return __builtin_sin(v); }
|
|
double com_std_cos(double v) { return __builtin_cos(v); }
|
|
#else
|
|
/* TODO: Use fsin/fcos, no matter how slow. */
|
|
double com_std_sin(double v) { return 0; }
|
|
double com_std_cos(double v) { return 0; }
|
|
#endif
|
|
|
|
// void memcpy(void *__restrict dest, const void *__restrict src, size_t n) {
|
|
// __builtin_memcpy(dest, src, n);
|
|
// };
|