|
18 | 18 | #include <syscall.h> |
19 | 19 | #endif |
20 | 20 |
|
21 | | -#define INVALID_HANDLE (-1) |
22 | | -#define HALT() for (;;) |
23 | | - |
24 | | -INT cm_snprintf (CHAR* dest, size_t size, const CHAR* fmt, ...); |
25 | | -INT cm_vsnprintf (CHAR* dest, size_t size, const CHAR* fmt, va_list l); |
| 21 | +#define INVALID_HANDLE (-1) |
| 22 | +#define CM_ABORT_EXIT_CODE (127U) |
26 | 23 |
|
27 | 24 | /*************************************************************************************************** |
28 | 25 | * Misc functions |
29 | 26 | ***************************************************************************************************/ |
| 27 | +#define HALT() for (;;) |
| 28 | + |
| 29 | +#define cm_panic() \ |
| 30 | + do { \ |
| 31 | + CM_DBG_ERROR ("Panic at %s: %u", __FILE__, __LINE__); \ |
| 32 | + cm_process_abort (CM_ABORT_EXIT_CODE); \ |
| 33 | + } while (0) |
| 34 | + |
| 35 | +#define cm_assert(t) \ |
| 36 | + do { \ |
| 37 | + if (!(t)) { \ |
| 38 | + cm_panic(); \ |
| 39 | + } \ |
| 40 | + } while (0) |
| 41 | + |
30 | 42 | void cm_delay (UINT ms); |
31 | 43 |
|
32 | 44 | static inline void cm_get_bootloaded_file (const char* const filename, |
@@ -85,3 +97,5 @@ void* cm_memcpy (void* dest, const void* src, size_t n); |
85 | 97 | UINT cm_strlen (const char* s); |
86 | 98 | char* cm_strncpy (char* d, const char* s, SIZE n); |
87 | 99 | void* cm_memset (void* const s, U8 c, size_t n); |
| 100 | +INT cm_snprintf (CHAR* dest, size_t size, const CHAR* fmt, ...); |
| 101 | +INT cm_vsnprintf (CHAR* dest, size_t size, const CHAR* fmt, va_list l); |
0 commit comments