summaryrefslogtreecommitdiff
path: root/include/assert.h
blob: 7a5e727e2bd3c9a8475309e99279fba5c2d90fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef GUARD_GBASDKASSERT_H
#define GUARD_GBASDKASSERT_H

// this header is based on the
// GBA SDK IsAgbAssert.h.

#ifdef NOAGBPRN
    #define AGBPrintInit()
    #define AGBPutc(pBuf)
    #define AGBPrint(pBuf)
    #define AGBPrintf(...)
    #define AGBPrintFlush1Block()
    #define AGBPrintFlush()
    #define AGBAssert(pFile, nLine, pExpression, nStopProgram)
#else
    // without NOAGBPRN defined, this enables asserts for usage
    // on a standard GBA debugger unit or in emulators that
    // support it.
    void AGBPrintInit(void);
    void AGBPutc(const char pBuf);
    void AGBPrint(const char *pBuf);
    void AGBPrintf(const char *pBuf, ...);
    void AGBPrintFlush1Block(void);
    void AGBPrintFlush(void);
    void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
#endif

// when using AGB_WARNING, be sure to flush after as AGBAssert does not flush the string to console
// immediately after usage.
#ifdef NOAGBPRN
    #define AGB_ASSERT(expression)
#else
    #define AGB_ASSERT(expression)  (expression) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #expression, 1);
#endif

#ifdef NOAGBPRN
    #define AGB_WARNING(expression)
#else
    #define AGB_WARNING(expression) (expression) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #expression, 0);
#endif


#endif