|
@@ -5,6 +5,9 @@ import "core:sys/posix"
|
|
|
|
|
|
foreign import libroot "system:c"
|
|
|
|
|
|
+USE_POSITIVE_POSIX_ERRORS :: posix._HAIKU_USE_POSITIVE_POSIX_ERRORS
|
|
|
+POSIX_ERROR_FACTOR :: posix._POSIX_ERROR_FACTOR
|
|
|
+
|
|
|
Errno :: enum i32 {
|
|
|
// Error baselines
|
|
|
GENERAL_ERROR_BASE = min(i32),
|
|
@@ -109,13 +112,95 @@ Errno :: enum i32 {
|
|
|
PARTIAL_READ = STORAGE_ERROR_BASE + 16,
|
|
|
PARTIAL_WRITE = STORAGE_ERROR_BASE + 17,
|
|
|
|
|
|
+ EIO = posix.EIO,
|
|
|
+ EACCES = posix.EACCES,
|
|
|
+ EINVAL = posix.EINVAL,
|
|
|
+ ETIMEDOUT = posix.ETIMEDOUT,
|
|
|
+ EINTR = posix.EINTR,
|
|
|
+ EAGAIN = posix.EAGAIN,
|
|
|
+ EWOULDBLOCK = posix.EWOULDBLOCK,
|
|
|
+ EBUSY = posix.EBUSY,
|
|
|
+ EPERM = posix.EPERM,
|
|
|
+ EFAULT = posix.EFAULT,
|
|
|
+ ENOEXEC = posix.ENOEXEC,
|
|
|
+ EBADF = posix.EBADF,
|
|
|
+ EEXIST = posix.EEXIST,
|
|
|
+ ENOENT = posix.ENOENT,
|
|
|
+ ENAMETOOLONG = posix.ENAMETOOLONG,
|
|
|
+ ENOTDIR = posix.ENOTDIR,
|
|
|
+ ENOTEMPTY = posix.ENOTEMPTY,
|
|
|
+ ENOSPC = posix.ENOSPC,
|
|
|
+ EROFS = posix.EROFS,
|
|
|
+ EISDIR = posix.EISDIR,
|
|
|
+ EMFILE = posix.EMFILE,
|
|
|
+ EXDEV = posix.EXDEV,
|
|
|
+ ELOOP = posix.ELOOP,
|
|
|
+ EPIPE = posix.EPIPE,
|
|
|
+ ENOMEM = posix.ENOMEM,
|
|
|
+ E2BIG = posix.E2BIG,
|
|
|
+ ECHILD = posix.ECHILD,
|
|
|
+ EDEADLK = posix.EDEADLK,
|
|
|
+ EFBIG = posix.EFBIG,
|
|
|
+ EMLINK = posix.EMLINK,
|
|
|
+ ENFILE = posix.ENFILE,
|
|
|
+ ENODEV = posix.ENODEV,
|
|
|
+ ENOLCK = posix.ENOLCK,
|
|
|
+ ENOSYS = posix.ENOSYS,
|
|
|
+ ENOTTY = posix.ENOTTY,
|
|
|
+ ENXIO = posix.ENXIO,
|
|
|
+ ESPIPE = posix.ESPIPE,
|
|
|
+ ESRCH = posix.ESRCH,
|
|
|
+ EDOM = posix.EDOM,
|
|
|
+ ERANGE = posix.ERANGE,
|
|
|
+ EPROTOTYPE = posix.EPROTOTYPE,
|
|
|
+ EPROTONOSUPPORT = posix.EPROTONOSUPPORT,
|
|
|
+ EAFNOSUPPORT = posix.EAFNOSUPPORT,
|
|
|
+ EADDRINUSE = posix.EADDRINUSE,
|
|
|
+ EADDRNOTAVAIL = posix.EADDRNOTAVAIL,
|
|
|
+ ENETDOWN = posix.ENETDOWN,
|
|
|
+ ENETUNREACH = posix.ENETUNREACH,
|
|
|
+ ENETRESET = posix.ENETRESET,
|
|
|
+ ECONNABORTED = posix.ECONNABORTED,
|
|
|
+ ECONNRESET = posix.ECONNRESET,
|
|
|
+ EISCONN = posix.EISCONN,
|
|
|
+ ENOTCONN = posix.ENOTCONN,
|
|
|
+ ECONNREFUSED = posix.ECONNREFUSED,
|
|
|
+ EHOSTUNREACH = posix.EHOSTUNREACH,
|
|
|
+ ENOPROTOOPT = posix.ENOPROTOOPT,
|
|
|
+ ENOBUFS = posix.ENOBUFS,
|
|
|
+ EINPROGRESS = posix.EINPROGRESS,
|
|
|
+ EALREADY = posix.EALREADY,
|
|
|
+ EILSEQ = posix.EILSEQ,
|
|
|
+ ENOMSG = posix.ENOMSG,
|
|
|
+ ESTALE = posix.ESTALE,
|
|
|
+ EOVERFLOW = posix.EOVERFLOW,
|
|
|
+ EMSGSIZE = posix.EMSGSIZE,
|
|
|
+ EOPNOTSUPP = posix.EOPNOTSUPP,
|
|
|
+ ENOTSOCK = posix.ENOTSOCK,
|
|
|
+ EBADMSG = posix.EBADMSG,
|
|
|
+ ECANCELED = posix.ECANCELED,
|
|
|
+ EDESTADDRREQ = posix.EDESTADDRREQ,
|
|
|
+ EDQUOT = posix.EDQUOT,
|
|
|
+ EIDRM = posix.EIDRM,
|
|
|
+ EMULTIHOP = posix.EMULTIHOP,
|
|
|
+ ENODATA = posix.ENODATA,
|
|
|
+ ENOLINK = posix.ENOLINK,
|
|
|
+ ENOSR = posix.ENOSR,
|
|
|
+ ENOSTR = posix.ENOSTR,
|
|
|
+ ENOTSUP = posix.ENOTSUP,
|
|
|
+ EPROTO = posix.EPROTO,
|
|
|
+ ETIME = posix.ETIME,
|
|
|
+ ETXTBSY = posix.ETXTBSY,
|
|
|
+ ENOTRECOVERABLE = posix.ENOTRECOVERABLE,
|
|
|
+ EOWNERDEAD = posix.EOWNERDEAD,
|
|
|
+
|
|
|
// New error codes that can be mapped to POSIX errors
|
|
|
- TOO_MANY_ARGS = posix.E2BIG,
|
|
|
- FILE_TOO_LARGE = posix.EFBIG,
|
|
|
- DEVICE_NOT_FOUND = posix.ENODEV,
|
|
|
- RESULT_NOT_REPRESENTABLE = posix.ERANGE,
|
|
|
- BUFFER_OVERFLOW = posix.EOVERFLOW,
|
|
|
- NOT_SUPPORTED = posix.EOPNOTSUPP,
|
|
|
+ TOO_MANY_ARGS = POSIX_ERROR_FACTOR * E2BIG,
|
|
|
+ FILE_TOO_LARGE = POSIX_ERROR_FACTOR * EFBIG,
|
|
|
+ DEVICE_NOT_FOUND = POSIX_ERROR_FACTOR * ENODEV,
|
|
|
+ RESULT_NOT_REPRESENTABLE = POSIX_ERROR_FACTOR * ERANGE,
|
|
|
+ BUFFER_OVERFLOW = POSIX_ERROR_FACTOR * EOVERFLOW,
|
|
|
+ NOT_SUPPORTED = POSIX_ERROR_FACTOR * EOPNOTSUPP,
|
|
|
|
|
|
// Media Kit Errors
|
|
|
STREAM_NOT_FOUND = MEDIA_ERROR_BASE + 0,
|