7c3088f21553354844d3055e1136d557aa400ee2
[monolithium.git] / sdk / defs.h
1 /*
2  * defs.h
3  *
4  * Copyright (C) 2017 Aleksandar Andrejevic <theflash@sdf.lonestar.org>
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Affero General Public License as
8  * published by the Free Software Foundation, either version 3 of the
9  * License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Affero General Public License for more details.
15  *
16  * You should have received a copy of the GNU Affero General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef __MONOLITHIUM_DEFS_H__
21 #define __MONOLITHIUM_DEFS_H__
22
23 #include <limits.h>
24 #include <stdarg.h>
25 #include <stddef.h>
26 #include <stdint.h>
27
28 #define FALSE 0
29 #define TRUE (!FALSE)
30 #define VARIABLE_SIZE 0
31
32 /* Monolithium-specific Type Limits */
33 #define BYTE_MIN  0
34 #define BYTE_MAX  0xFF
35 #define WORD_MIN  0
36 #define WORD_MAX  0xFFFF
37 #define DWORD_MIN 0
38 #define DWORD_MAX 0xFFFFFFFF
39 #define QWORD_MIN 0ULL
40 #define QWORD_MAX 0xFFFFFFFFFFFFFFFFULL
41
42 /* Monolithium Error Codes */
43 #define ERR_SUCCESS   0x00000000
44 #define ERR_NOTFOUND  0xE0000001
45 #define ERR_FORBIDDEN 0xE0000002
46 #define ERR_INVALID   0xE0000003
47 #define ERR_EXISTS    0xE0000004
48 #define ERR_NOMEMORY  0xE0000005
49 #define ERR_HARDWARE  0xE0000006
50 #define ERR_BUSY      0xE0000007
51 #define ERR_WRITEPROT 0xE0000008
52 #define ERR_NOSYSCALL 0xE0000009
53 #define ERR_TIMEOUT   0xE000000A
54 #define ERR_BADPTR    0xE000000B
55 #define ERR_CANCELED  0xE000000C
56 #define ERR_ISDIR     0xE000000D
57 #define ERR_ISNOTDIR  0xE000000E
58 #define ERR_DISKFULL  0xE000000F
59 #define ERR_BEYOND    0xE0000010
60 #define ERR_SMALLBUF  0xE0000011
61 #define ERR_NOMORE    0xE0000012
62 #define MAX_ERR       0xE0000013
63
64 #define MAX_PATH 16384
65
66 /* Monolithium-specific Types */
67 typedef uint8_t bool_t;
68 typedef uint8_t byte_t;
69 typedef uint16_t word_t;
70 typedef uint32_t dword_t;
71 typedef uint64_t qword_t;
72
73 /* System call return value */
74 typedef qword_t sysret_t;
75
76 #endif