main
1#ifndef KC_HEADER_TYPES_TYPES_INCLUDED
2#define KC_HEADER_TYPES_TYPES_INCLUDED
3
4#include "../platform/types.h"
5
6/* Boolean */
7typedef u8 bool;
8
9
10/* Status type */
11typedef i32 status;
12
13#define OK(status) ((status) == STATUS_SUCCESS)
14
15#define PROPAGATE_ERROR(_status) do{ status ret = _status; if(ret != STATUS_SUCCESS) return ret; }while(0)
16
17enum _Status {
18 STATUS_SUCCESS = 0,
19
20 STATUS_STREAM_ENDED = 100,
21 STATUS_PARTIAL_WRITE = 101,
22
23 ERROR_GENERIC = -1,
24 ERROR_WOULD_OVERRUN = -2,
25 ERROR_WOULD_UNDERRUN = -3,
26 ERROR_INVALID_ARGUMENTS = -4,
27
28
29 ERROR_PLATFORM_GENERIC = -10000,
30 ERROR_PLATFORM_MAPPING_FAILED = -10001,
31 ERROR_PLATFORM_MEMORY_PERMISSION_CHANGE_FAILED = -10002,
32 ERROR_PLATFORM_MEMORY_HINT_CHANGE_FAILED = -10003,
33 ERROR_PLATFORM_FILE_OPEN_FAILED = -10004,
34 ERROR_PLATFORM_FILE_CLOSE_FAILED = -10005,
35 ERROR_PLATFORM_FILE_READ_FAILED = -10006,
36 ERROR_PLATFORM_FILE_WRITE_FAILED = -10007,
37
38};
39
40
41/* String types */
42
43#endif