2017-03-21 00:41:49 +00:00
|
|
|
#ifndef __TREZORHAL_COMMON_H__
|
|
|
|
#define __TREZORHAL_COMMON_H__
|
|
|
|
|
2017-03-29 18:50:45 +00:00
|
|
|
#include <stdint.h>
|
2017-10-26 21:51:39 +00:00
|
|
|
#include "secbool.h"
|
2017-03-29 18:50:45 +00:00
|
|
|
|
2018-02-22 19:35:32 +00:00
|
|
|
#ifndef MIN
|
|
|
|
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
|
|
|
#endif
|
|
|
|
#ifndef MAX
|
|
|
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
|
|
|
#endif
|
|
|
|
|
2017-10-11 22:32:46 +00:00
|
|
|
void __attribute__((noreturn)) __fatal_error(const char *expr, const char *msg, const char *file, int line, const char *func);
|
|
|
|
|
2017-10-26 21:51:39 +00:00
|
|
|
#define ensure(expr, msg) (((expr) == sectrue) ? (void)0 : __fatal_error(#expr, msg, __FILE__, __LINE__, __func__))
|
2017-03-21 00:41:49 +00:00
|
|
|
|
2017-10-05 15:31:05 +00:00
|
|
|
void hal_delay(uint32_t ms);
|
|
|
|
|
2017-11-07 19:41:16 +00:00
|
|
|
void clear_otg_hs_memory(void);
|
2017-10-13 15:18:02 +00:00
|
|
|
|
2017-10-11 19:15:22 +00:00
|
|
|
extern uint32_t __stack_chk_guard;
|
|
|
|
|
2017-11-07 19:41:16 +00:00
|
|
|
// the following functions are defined in util.s
|
|
|
|
|
|
|
|
void memset_reg(volatile void *start, volatile void *stop, uint32_t val);
|
|
|
|
void jump_to(uint32_t address);
|
2018-02-13 19:50:40 +00:00
|
|
|
void jump_to_unprivileged(uint32_t address);
|
2017-11-07 19:41:16 +00:00
|
|
|
|
2017-03-21 00:41:49 +00:00
|
|
|
#endif
|