pal_linux_error.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef PAL_LINUX_ERROR_H
  2. #define PAL_LINUX_ERROR_H
  3. #ifdef IN_PAL
  4. #include <asm/errno.h>
  5. #include <pal_error.h>
  6. static inline __attribute__((unused)) int unix_to_pal_error(int unix_errno) {
  7. switch (unix_errno) {
  8. case ENOENT:
  9. return -PAL_ERROR_STREAMNOTEXIST;
  10. case EINTR:
  11. return -PAL_ERROR_INTERRUPTED;
  12. case EBADF:
  13. return -PAL_ERROR_BADHANDLE;
  14. case ETIMEDOUT:
  15. case EAGAIN:
  16. return -PAL_ERROR_TRYAGAIN;
  17. case ENOMEM:
  18. return -PAL_ERROR_NOMEM;
  19. case EFAULT:
  20. return -PAL_ERROR_BADADDR;
  21. case EEXIST:
  22. case EADDRINUSE:
  23. return -PAL_ERROR_STREAMEXIST;
  24. case ENOTDIR:
  25. return -PAL_ERROR_STREAMISFILE;
  26. case EINVAL:
  27. return -PAL_ERROR_INVAL;
  28. case ENAMETOOLONG:
  29. return -PAL_ERROR_TOOLONG;
  30. case EISDIR:
  31. return -PAL_ERROR_STREAMISDIR;
  32. case ECONNRESET:
  33. case EPIPE:
  34. return -PAL_ERROR_CONNFAILED;
  35. case EAFNOSUPPORT:
  36. return -PAL_ERROR_AFNOSUPPORT;
  37. default:
  38. return -PAL_ERROR_DENIED;
  39. }
  40. }
  41. #endif /* IN_PAL */
  42. #endif /* PAL_LINUX_ERROR_H */