mirror of
https://github.com/ish-app/ish.git
synced 2026-01-18 13:57:29 +00:00
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
#include "kernel/process.h"
|
|
#include "kernel/signal.h"
|
|
#include "kernel/errno.h"
|
|
|
|
int err_map(int err) {
|
|
#define ERRCASE(err) \
|
|
case err: return _##err;
|
|
switch (err) {
|
|
ERRCASE(EPERM)
|
|
ERRCASE(ENOENT)
|
|
ERRCASE(ESRCH)
|
|
ERRCASE(EINTR)
|
|
ERRCASE(EIO)
|
|
ERRCASE(ENXIO)
|
|
ERRCASE(E2BIG)
|
|
ERRCASE(ENOEXEC)
|
|
ERRCASE(EBADF)
|
|
ERRCASE(ECHILD)
|
|
ERRCASE(EAGAIN)
|
|
ERRCASE(ENOMEM)
|
|
ERRCASE(EACCES)
|
|
ERRCASE(EFAULT)
|
|
ERRCASE(ENOTBLK)
|
|
ERRCASE(EBUSY)
|
|
ERRCASE(EEXIST)
|
|
ERRCASE(EXDEV)
|
|
ERRCASE(ENODEV)
|
|
ERRCASE(ENOTDIR)
|
|
ERRCASE(EISDIR)
|
|
ERRCASE(EINVAL)
|
|
ERRCASE(ENFILE)
|
|
ERRCASE(EMFILE)
|
|
ERRCASE(ENOTTY)
|
|
ERRCASE(ETXTBSY)
|
|
ERRCASE(EFBIG)
|
|
ERRCASE(ENOSPC)
|
|
ERRCASE(ESPIPE)
|
|
ERRCASE(EROFS)
|
|
ERRCASE(EMLINK)
|
|
ERRCASE(EPIPE)
|
|
ERRCASE(EDOM)
|
|
ERRCASE(ERANGE)
|
|
ERRCASE(EDEADLK)
|
|
ERRCASE(ENAMETOOLONG)
|
|
ERRCASE(ENOLCK)
|
|
ERRCASE(ENOSYS)
|
|
#ifdef ELIBBAD
|
|
ERRCASE(ELIBBAD)
|
|
#endif
|
|
}
|
|
#undef ERRCASE
|
|
return 1337; // TODO FIXME XXX
|
|
}
|
|
|
|
int errno_map() {
|
|
if (errno == EPIPE)
|
|
send_signal(current, SIGPIPE_);
|
|
return err_map(errno);
|
|
}
|
|
|