avr-fw-modules/core/include/sys/assert.h

39 lines
718 B
C

#pragma once
#include <hwo/utils.h>
#if defined(DEBUG_ASSERTIONS)
#pragma message "ASSERTIONS: DEBUG MODE"
void _assert(int result,int16_t loc);
void _assert_read(void);
static inline int _noassert(int r,int16_t loc) {
if (r<0)
{
_assert( r, loc );
};
return r;
};
int32_t _assert_current(void);
int32_t _assert_current_error(void);
#define assert2(f,p) { int r = (f); if (r<0) { _assert( r, p ); return r; }; }
#define assert(f) assert2( f, getPC() )
#define noassert(f) _noassert( (f), getPC() )
#else
#define assert2(f,p) (f)
#define assert(f) (f)
#define noassert(f) (f)
#define _assert_read() (0)
#define _assert_current_error() (0)
#define _assert_current() (0)
#endif