diff options
Diffstat (limited to 'robot/errcatch.h')
-rw-r--r-- | robot/errcatch.h | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/robot/errcatch.h b/robot/errcatch.h index 2297886..836da1b 100644 --- a/robot/errcatch.h +++ b/robot/errcatch.h @@ -2,22 +2,11 @@ #include <stdint.h> -#include "consts.h" - -/** - * error struct - * - * holds an error with type `code`, and an optional `message` with length - * `message_length` - */ -typedef struct { - enum w2_e_errorcodes code; - uint8_t message_length; - char message[]; -} w2_s_error; +#include "../shared/consts.h" +#include "../shared/errors.h" /** error ring buffer */ -extern w2_s_error g_w2_error_buffer[W2_ERROR_BUFFER_SIZE]; +extern w2_s_error *g_w2_error_buffer[W2_ERROR_BUFFER_SIZE]; /** stores head of ring buffer */ extern uint8_t g_w2_error_index; /** stores start of ring buffer */ @@ -30,14 +19,14 @@ void w2_errcatch_main(); void w2_errcatch_handle_error(w2_s_error *error); /** append error to error buffer */ -void w2_errcatch_throw(enum w2_e_errorcodes code); +void w2_errcatch_throw(w2_e_errorcode code); /** append error to error buffer (with debug message) */ -void w2_errcatch_throw_msg(enum w2_e_errorcodes code, uint16_t length, const char *message); +void w2_errcatch_throw_msg(w2_e_errorcode code, uint16_t length, const char *message); /** * allocate and initialize error struct * - * TODO: doesn't handle null pointers from calloc + * TODO: doesn't handle null pointers from malloc */ -w2_s_error *w2_alloc_error(enum w2_e_errorcodes code, uint16_t length, const char *message); +w2_s_error *w2_alloc_error(w2_e_errorcode code, uint16_t length, const char *message); |