summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/errno.h139
-rw-r--r--include/kernel/sys.h263
-rw-r--r--include/unistd.h28
3 files changed, 430 insertions, 0 deletions
diff --git a/include/errno.h b/include/errno.h
new file mode 100644
index 0000000..930671a
--- /dev/null
+++ b/include/errno.h
@@ -0,0 +1,139 @@
+#ifndef _ERRNO_H
+#define _ERRNO_H
+
+#define EPERM 1
+#define ENOENT 2
+#define ESRCH 3
+#define EINTR 4
+#define EIO 5
+#define ENXIO 6
+#define E2BIG 7
+#define ENOEXEC 8
+#define EBADF 9
+#define ECHILD 10
+#define EAGAIN 11
+#define EWOULDBLOCK 11
+#define ENOMEM 12
+#define EACCES 13
+#define EFAULT 14
+#define ENOTBLK 15
+#define EBUSY 16
+#define EEXIST 17
+#define EXDEV 18
+#define ENODEV 19
+#define ENOTDIR 20
+#define EISDIR 21
+#define EINVAL 22
+#define ENFILE 23
+#define EMFILE 24
+#define ENOTTY 25
+#define ETXTBSY 26
+#define EFBIG 27
+#define ENOSPC 28
+#define ESPIPE 29
+#define EROFS 30
+#define EMLINK 31
+#define EPIPE 32
+#define EDOM 33
+#define ERANGE 34
+#define EDEADLK 35
+#define EDEADLOCK 35
+#define ENAMETOOLONG 36
+#define ENOLCK 37
+#define ENOSYS 38
+#define ENOTEMPTY 39
+#define ELOOP 40
+#define ENOMSG 42
+#define EIDRM 43
+#define ECHRNG 44
+#define EL2NSYNC 45
+#define EL3HLT 46
+#define EL3RST 47
+#define ELNRNG 48
+#define EUNATCH 49
+#define ENOCSI 50
+#define EL2HLT 51
+#define EBADE 52
+#define EBADR 53
+#define EXFULL 54
+#define ENOANO 55
+#define EBADRQC 56
+#define EBADSLT 57
+#define EBFONT 59
+#define ENOSTR 60
+#define ENODATA 61
+#define ETIME 62
+#define ENOSR 63
+#define ENONET 64
+#define ENOPKG 65
+#define EREMOTE 66
+#define ENOLINK 67
+#define EADV 68
+#define ESRMNT 69
+#define ECOMM 70
+#define EPROTO 71
+#define EMULTIHOP 72
+#define EDOTDOT 73
+#define EBADMSG 74
+#define EOVERFLOW 75
+#define ENOTUNIQ 76
+#define EBADFD 77
+#define EREMCHG 78
+#define ELIBACC 79
+#define ELIBBAD 80
+#define ELIBSCN 81
+#define ELIBMAX 82
+#define ELIBEXEC 83
+#define EILSEQ 84
+#define ERESTART 85
+#define ESTRPIPE 86
+#define EUSERS 87
+#define ENOTSOCK 88
+#define EDESTADDRREQ 89
+#define EMSGSIZE 90
+#define EPROTOTYPE 91
+#define ENOPROTOOPT 92
+#define EPROTONOSUPPORT 93
+#define ESOCKTNOSUPPORT 94
+#define EOPNOTSUPP 95
+#define ENOTSUP 95
+#define EPFNOSUPPORT 96
+#define EAFNOSUPPORT 97
+#define EADDRINUSE 98
+#define EADDRNOTAVAIL 99
+#define ENETDOWN 100
+#define ENETUNREACH 101
+#define ENETRESET 102
+#define ECONNABORTED 103
+#define ECONNRESET 104
+#define ENOBUFS 105
+#define EISCONN 106
+#define ENOTCONN 107
+#define ESHUTDOWN 108
+#define ETOOMANYREFS 109
+#define ETIMEDOUT 110
+#define ECONNREFUSED 111
+#define EHOSTDOWN 112
+#define EHOSTUNREACH 113
+#define EALREADY 114
+#define EINPROGRESS 115
+#define ESTALE 116
+#define EUCLEAN 117
+#define ENOTNAM 118
+#define ENAVAIL 119
+#define EISNAM 120
+#define EREMOTEIO 121
+#define EDQUOT 122
+#define ENOMEDIUM 123
+#define EMEDIUMTYPE 124
+#define ECANCELED 125
+#define ENOKEY 126
+#define EKEYEXPIRED 127
+#define EKEYREVOKED 128
+#define EKEYREJECTED 129
+#define EOWNERDEAD 130
+#define ENOTRECOVERABLE 131
+#define ERFKILL 132
+#define EHWPOISON 133
+
+#endif
diff --git a/include/kernel/sys.h b/include/kernel/sys.h
new file mode 100644
index 0000000..ea54f14
--- /dev/null
+++ b/include/kernel/sys.h
@@ -0,0 +1,263 @@
+typedef int (*syscall_t) (void);
+
+extern int sys_print(void);
+extern int sys_dummy(void);
+
+syscall_t call_table[256] = {
+ [0] = &sys_print,
+ [1] = &sys_dummy,
+ [2] = &sys_dummy,
+ [3] = &sys_dummy,
+ [4] = &sys_dummy,
+ [5] = &sys_dummy,
+ [6] = &sys_dummy,
+ [7] = &sys_dummy,
+ [8] = &sys_dummy,
+ [9] = &sys_dummy,
+ [10] = &sys_dummy,
+ [11] = &sys_dummy,
+ [12] = &sys_dummy,
+ [13] = &sys_dummy,
+ [14] = &sys_dummy,
+ [15] = &sys_dummy,
+ [16] = &sys_dummy,
+ [17] = &sys_dummy,
+ [18] = &sys_dummy,
+ [19] = &sys_dummy,
+ [20] = &sys_dummy,
+ [21] = &sys_dummy,
+ [22] = &sys_dummy,
+ [23] = &sys_dummy,
+ [24] = &sys_dummy,
+ [25] = &sys_dummy,
+ [26] = &sys_dummy,
+ [27] = &sys_dummy,
+ [28] = &sys_dummy,
+ [29] = &sys_dummy,
+ [30] = &sys_dummy,
+ [31] = &sys_dummy,
+ [32] = &sys_dummy,
+ [33] = &sys_dummy,
+ [34] = &sys_dummy,
+ [35] = &sys_dummy,
+ [36] = &sys_dummy,
+ [37] = &sys_dummy,
+ [38] = &sys_dummy,
+ [39] = &sys_dummy,
+ [40] = &sys_dummy,
+ [41] = &sys_dummy,
+ [42] = &sys_dummy,
+ [43] = &sys_dummy,
+ [44] = &sys_dummy,
+ [45] = &sys_dummy,
+ [46] = &sys_dummy,
+ [47] = &sys_dummy,
+ [48] = &sys_dummy,
+ [49] = &sys_dummy,
+ [50] = &sys_dummy,
+ [51] = &sys_dummy,
+ [52] = &sys_dummy,
+ [53] = &sys_dummy,
+ [54] = &sys_dummy,
+ [55] = &sys_dummy,
+ [56] = &sys_dummy,
+ [57] = &sys_dummy,
+ [58] = &sys_dummy,
+ [59] = &sys_dummy,
+ [60] = &sys_dummy,
+ [61] = &sys_dummy,
+ [62] = &sys_dummy,
+ [63] = &sys_dummy,
+ [64] = &sys_dummy,
+ [65] = &sys_dummy,
+ [66] = &sys_dummy,
+ [67] = &sys_dummy,
+ [68] = &sys_dummy,
+ [69] = &sys_dummy,
+ [70] = &sys_dummy,
+ [71] = &sys_dummy,
+ [72] = &sys_dummy,
+ [73] = &sys_dummy,
+ [74] = &sys_dummy,
+ [75] = &sys_dummy,
+ [76] = &sys_dummy,
+ [77] = &sys_dummy,
+ [78] = &sys_dummy,
+ [79] = &sys_dummy,
+ [80] = &sys_dummy,
+ [81] = &sys_dummy,
+ [82] = &sys_dummy,
+ [83] = &sys_dummy,
+ [84] = &sys_dummy,
+ [85] = &sys_dummy,
+ [86] = &sys_dummy,
+ [87] = &sys_dummy,
+ [88] = &sys_dummy,
+ [89] = &sys_dummy,
+ [90] = &sys_dummy,
+ [91] = &sys_dummy,
+ [92] = &sys_dummy,
+ [93] = &sys_dummy,
+ [94] = &sys_dummy,
+ [95] = &sys_dummy,
+ [96] = &sys_dummy,
+ [97] = &sys_dummy,
+ [98] = &sys_dummy,
+ [99] = &sys_dummy,
+ [100] = &sys_dummy,
+ [101] = &sys_dummy,
+ [102] = &sys_dummy,
+ [103] = &sys_dummy,
+ [104] = &sys_dummy,
+ [105] = &sys_dummy,
+ [106] = &sys_dummy,
+ [107] = &sys_dummy,
+ [108] = &sys_dummy,
+ [109] = &sys_dummy,
+ [110] = &sys_dummy,
+ [111] = &sys_dummy,
+ [112] = &sys_dummy,
+ [113] = &sys_dummy,
+ [114] = &sys_dummy,
+ [115] = &sys_dummy,
+ [116] = &sys_dummy,
+ [117] = &sys_dummy,
+ [118] = &sys_dummy,
+ [119] = &sys_dummy,
+ [120] = &sys_dummy,
+ [121] = &sys_dummy,
+ [122] = &sys_dummy,
+ [123] = &sys_dummy,
+ [124] = &sys_dummy,
+ [125] = &sys_dummy,
+ [126] = &sys_dummy,
+ [127] = &sys_dummy,
+ [128] = &sys_dummy,
+ [129] = &sys_dummy,
+ [130] = &sys_dummy,
+ [131] = &sys_dummy,
+ [132] = &sys_dummy,
+ [133] = &sys_dummy,
+ [134] = &sys_dummy,
+ [135] = &sys_dummy,
+ [136] = &sys_dummy,
+ [137] = &sys_dummy,
+ [138] = &sys_dummy,
+ [139] = &sys_dummy,
+ [140] = &sys_dummy,
+ [141] = &sys_dummy,
+ [142] = &sys_dummy,
+ [143] = &sys_dummy,
+ [144] = &sys_dummy,
+ [145] = &sys_dummy,
+ [146] = &sys_dummy,
+ [147] = &sys_dummy,
+ [148] = &sys_dummy,
+ [149] = &sys_dummy,
+ [150] = &sys_dummy,
+ [151] = &sys_dummy,
+ [152] = &sys_dummy,
+ [153] = &sys_dummy,
+ [154] = &sys_dummy,
+ [155] = &sys_dummy,
+ [156] = &sys_dummy,
+ [157] = &sys_dummy,
+ [158] = &sys_dummy,
+ [159] = &sys_dummy,
+ [160] = &sys_dummy,
+ [161] = &sys_dummy,
+ [162] = &sys_dummy,
+ [163] = &sys_dummy,
+ [164] = &sys_dummy,
+ [165] = &sys_dummy,
+ [166] = &sys_dummy,
+ [167] = &sys_dummy,
+ [168] = &sys_dummy,
+ [169] = &sys_dummy,
+ [170] = &sys_dummy,
+ [171] = &sys_dummy,
+ [172] = &sys_dummy,
+ [173] = &sys_dummy,
+ [174] = &sys_dummy,
+ [175] = &sys_dummy,
+ [176] = &sys_dummy,
+ [177] = &sys_dummy,
+ [178] = &sys_dummy,
+ [179] = &sys_dummy,
+ [180] = &sys_dummy,
+ [181] = &sys_dummy,
+ [182] = &sys_dummy,
+ [183] = &sys_dummy,
+ [184] = &sys_dummy,
+ [185] = &sys_dummy,
+ [186] = &sys_dummy,
+ [187] = &sys_dummy,
+ [188] = &sys_dummy,
+ [189] = &sys_dummy,
+ [190] = &sys_dummy,
+ [191] = &sys_dummy,
+ [192] = &sys_dummy,
+ [193] = &sys_dummy,
+ [194] = &sys_dummy,
+ [195] = &sys_dummy,
+ [196] = &sys_dummy,
+ [197] = &sys_dummy,
+ [198] = &sys_dummy,
+ [199] = &sys_dummy,
+ [200] = &sys_dummy,
+ [201] = &sys_dummy,
+ [202] = &sys_dummy,
+ [203] = &sys_dummy,
+ [204] = &sys_dummy,
+ [205] = &sys_dummy,
+ [206] = &sys_dummy,
+ [207] = &sys_dummy,
+ [208] = &sys_dummy,
+ [209] = &sys_dummy,
+ [210] = &sys_dummy,
+ [211] = &sys_dummy,
+ [212] = &sys_dummy,
+ [213] = &sys_dummy,
+ [214] = &sys_dummy,
+ [215] = &sys_dummy,
+ [216] = &sys_dummy,
+ [217] = &sys_dummy,
+ [218] = &sys_dummy,
+ [219] = &sys_dummy,
+ [220] = &sys_dummy,
+ [221] = &sys_dummy,
+ [222] = &sys_dummy,
+ [223] = &sys_dummy,
+ [224] = &sys_dummy,
+ [225] = &sys_dummy,
+ [226] = &sys_dummy,
+ [227] = &sys_dummy,
+ [228] = &sys_dummy,
+ [229] = &sys_dummy,
+ [230] = &sys_dummy,
+ [231] = &sys_dummy,
+ [232] = &sys_dummy,
+ [233] = &sys_dummy,
+ [234] = &sys_dummy,
+ [235] = &sys_dummy,
+ [236] = &sys_dummy,
+ [237] = &sys_dummy,
+ [238] = &sys_dummy,
+ [239] = &sys_dummy,
+ [240] = &sys_dummy,
+ [241] = &sys_dummy,
+ [242] = &sys_dummy,
+ [243] = &sys_dummy,
+ [244] = &sys_dummy,
+ [245] = &sys_dummy,
+ [246] = &sys_dummy,
+ [247] = &sys_dummy,
+ [248] = &sys_dummy,
+ [249] = &sys_dummy,
+ [250] = &sys_dummy,
+ [251] = &sys_dummy,
+ [252] = &sys_dummy,
+ [253] = &sys_dummy,
+ [254] = &sys_dummy,
+ [255] = &sys_dummy
+};
diff --git a/include/unistd.h b/include/unistd.h
new file mode 100644
index 0000000..c63ac6a
--- /dev/null
+++ b/include/unistd.h
@@ -0,0 +1,28 @@
+#ifndef _UNISTD_H
+#define _UNISTD_H
+
+#define __SYS_print 0
+
+#define _syscall0(type, name) \
+ type name(void) { \
+ type __res; \
+ __asm__ volatile ( \
+ "int $0x80" \
+ : "=a" (__res) \
+ : "a" (__SYS_##name) \
+ :); \
+ return __res; \
+ }
+
+#define _syscall1(type, name, atype, a) \
+ type name(atype a) { \
+ type __res; \
+ __asm__ volatile ( \
+ "int $0x80" \
+ : "=a" (__res) \
+ : "a" (__SYS_##name), "b" (a) \
+ :); \
+ return __res; \
+ }
+
+#endif