2014-09-21 23:32:14 +08:00
|
|
|
#ifndef __EXCEPTIONS_H
|
|
|
|
#define __EXCEPTIONS_H
|
|
|
|
|
2014-09-22 13:18:48 +08:00
|
|
|
enum {
|
2014-09-25 12:55:50 +08:00
|
|
|
EID_OUT_OF_MEMORY = 0,
|
2014-09-30 19:32:11 +08:00
|
|
|
EID_RTIO_UNDERFLOW = 1,
|
2014-10-21 23:41:02 +08:00
|
|
|
EID_RTIO_SEQUENCE_ERROR = 2,
|
|
|
|
EID_RTIO_OVERFLOW = 3,
|
2014-09-21 23:32:14 +08:00
|
|
|
};
|
|
|
|
|
2014-09-23 22:09:08 +08:00
|
|
|
int exception_setjmp(void *jb) __attribute__((returns_twice));
|
2014-09-24 00:00:10 +08:00
|
|
|
void exception_longjmp(void *jb) __attribute__((noreturn));
|
2014-09-23 22:09:08 +08:00
|
|
|
|
2014-09-22 13:18:48 +08:00
|
|
|
void *exception_push(void);
|
2014-09-23 16:22:32 +08:00
|
|
|
void exception_pop(int levels);
|
2014-09-22 13:18:48 +08:00
|
|
|
int exception_getid(void);
|
2014-09-21 23:32:14 +08:00
|
|
|
void exception_raise(int id) __attribute__((noreturn));
|
|
|
|
|
|
|
|
#endif /* __EXCEPTIONS_H */
|