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