diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/errno.h | 139 | ||||
| -rw-r--r-- | include/kernel/sys.h | 263 | ||||
| -rw-r--r-- | include/unistd.h | 28 |
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 |
