Kyty/source/emulator/include/Emulator/Libs/Errno.h

332 lines
20 KiB
C++

#ifndef EMULATOR_INCLUDE_EMULATOR_LIBS_ERRNO_H_
#define EMULATOR_INCLUDE_EMULATOR_LIBS_ERRNO_H_
#include "Emulator/Common.h"
#ifdef KYTY_EMU_ENABLED
constexpr int OK = 0;
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
#define POSIX_CALL(func) \
[&]() \
{ \
auto result = func; \
if (result != OK) \
{ \
*GetErrorAddr() = LibKernel::KernelToPosix(result); \
return -1; \
} \
return 0; \
}()
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
#define POSIX_PTHREAD_CALL(func) \
[&]() \
{ \
auto result = func; \
if (result != OK) \
{ \
return LibKernel::KernelToPosix(result); \
} \
return 0; \
}()
namespace Kyty::Libs {
namespace Posix {
KYTY_SYSV_ABI int* GetErrorAddr();
constexpr int POSIX_EPERM = 1;
constexpr int POSIX_ENOENT = 2;
constexpr int POSIX_ESRCH = 3;
constexpr int POSIX_EINTR = 4;
constexpr int POSIX_EIO = 5;
constexpr int POSIX_ENXIO = 6;
constexpr int POSIX_E2BIG = 7;
constexpr int POSIX_ENOEXEC = 8;
constexpr int POSIX_EBADF = 9;
constexpr int POSIX_ECHILD = 10;
constexpr int POSIX_EDEADLK = 11;
constexpr int POSIX_ENOMEM = 12;
constexpr int POSIX_EACCES = 13;
constexpr int POSIX_EFAULT = 14;
constexpr int POSIX_ENOTBLK = 15;
constexpr int POSIX_EBUSY = 16;
constexpr int POSIX_EEXIST = 17;
constexpr int POSIX_EXDEV = 18;
constexpr int POSIX_ENODEV = 19;
constexpr int POSIX_ENOTDIR = 20;
constexpr int POSIX_EISDIR = 21;
constexpr int POSIX_EINVAL = 22;
constexpr int POSIX_ENFILE = 23;
constexpr int POSIX_EMFILE = 24;
constexpr int POSIX_ENOTTY = 25;
constexpr int POSIX_ETXTBSY = 26;
constexpr int POSIX_EFBIG = 27;
constexpr int POSIX_ENOSPC = 28;
constexpr int POSIX_ESPIPE = 29;
constexpr int POSIX_EROFS = 30;
constexpr int POSIX_EMLINK = 31;
constexpr int POSIX_EPIPE = 32;
constexpr int POSIX_EDOM = 33;
constexpr int POSIX_ERANGE = 34;
constexpr int POSIX_EAGAIN = 35;
constexpr int POSIX_EWOULDBLOCK = 35;
constexpr int POSIX_EINPROGRESS = 36;
constexpr int POSIX_EALREADY = 37;
constexpr int POSIX_ENOTSOCK = 38;
constexpr int POSIX_EDESTADDRREQ = 39;
constexpr int POSIX_EMSGSIZE = 40;
constexpr int POSIX_EPROTOTYPE = 41;
constexpr int POSIX_ENOPROTOOPT = 42;
constexpr int POSIX_EPROTONOSUPPORT = 43;
constexpr int POSIX_ESOCKTNOSUPPORT = 44;
constexpr int POSIX_EOPNOTSUPP = 45;
constexpr int POSIX_ENOTSUP = 45;
constexpr int POSIX_EPFNOSUPPORT = 46;
constexpr int POSIX_EAFNOSUPPORT = 47;
constexpr int POSIX_EADDRINUSE = 48;
constexpr int POSIX_EADDRNOTAVAIL = 49;
constexpr int POSIX_ENETDOWN = 50;
constexpr int POSIX_ENETUNREACH = 51;
constexpr int POSIX_ENETRESET = 52;
constexpr int POSIX_ECONNABORTED = 53;
constexpr int POSIX_ECONNRESET = 54;
constexpr int POSIX_ENOBUFS = 55;
constexpr int POSIX_EISCONN = 56;
constexpr int POSIX_ENOTCONN = 57;
constexpr int POSIX_ESHUTDOWN = 58;
constexpr int POSIX_ETOOMANYREFS = 59;
constexpr int POSIX_ETIMEDOUT = 60;
constexpr int POSIX_ECONNREFUSED = 61;
constexpr int POSIX_ELOOP = 62;
constexpr int POSIX_ENAMETOOLONG = 63;
constexpr int POSIX_EHOSTDOWN = 64;
constexpr int POSIX_EHOSTUNREACH = 65;
constexpr int POSIX_ENOTEMPTY = 66;
constexpr int POSIX_EPROCLIM = 67;
constexpr int POSIX_EUSERS = 68;
constexpr int POSIX_EDQUOT = 69;
constexpr int POSIX_ESTALE = 70;
constexpr int POSIX_EREMOTE = 71;
constexpr int POSIX_EBADRPC = 72;
constexpr int POSIX_ERPCMISMATCH = 73;
constexpr int POSIX_EPROGUNAVAIL = 74;
constexpr int POSIX_EPROGMISMATCH = 75;
constexpr int POSIX_EPROCUNAVAIL = 76;
constexpr int POSIX_ENOLCK = 77;
constexpr int POSIX_ENOSYS = 78;
constexpr int POSIX_EFTYPE = 79;
constexpr int POSIX_EAUTH = 80;
constexpr int POSIX_ENEEDAUTH = 81;
constexpr int POSIX_EIDRM = 82;
constexpr int POSIX_ENOMSG = 83;
constexpr int POSIX_EOVERFLOW = 84;
constexpr int POSIX_ECANCELED = 85;
constexpr int POSIX_EILSEQ = 86;
constexpr int POSIX_ENOATTR = 87;
constexpr int POSIX_EDOOFUS = 88;
constexpr int POSIX_EBADMSG = 89;
constexpr int POSIX_EMULTIHOP = 90;
constexpr int POSIX_ENOLINK = 91;
constexpr int POSIX_EPROTO = 92;
constexpr int POSIX_ENOTCAPABLE = 93;
constexpr int POSIX_ECAPMODE = 94;
constexpr int POSIX_ENOBLK = 95;
constexpr int POSIX_EICV = 96;
constexpr int POSIX_ENOPLAYGOENT = 97;
constexpr int POSIX_EREVOKE = 98;
constexpr int POSIX_ESDKVERSION = 99;
constexpr int POSIX_ESTART = 100;
constexpr int POSIX_ESTOP = 101;
constexpr int POSIX_EINVALID2MB = 102;
constexpr int POSIX_ELAST = 102;
constexpr int POSIX_EADHOC = 160;
constexpr int POSIX_EINACTIVEDISABLED = 163;
constexpr int POSIX_ENETNODATA = 164;
constexpr int POSIX_ENETDESC = 165;
constexpr int POSIX_ENETDESCTIMEDOUT = 166;
constexpr int POSIX_ENETINTR = 167;
constexpr int POSIX_ERETURN = 205;
constexpr int POSIX_EFPOS = 152;
constexpr int POSIX_ENODATA = 1040;
constexpr int POSIX_ENOSR = 1050;
constexpr int POSIX_ENOSTR = 1051;
constexpr int POSIX_ENOTRECOVERABLE = 1056;
constexpr int POSIX_EOTHER = 1062;
constexpr int POSIX_EOWNERDEAD = 1064;
constexpr int POSIX_ETIME = 1074;
} // namespace Posix
namespace LibKernel {
inline int KernelToPosix(int kernel_errno)
{
return kernel_errno > -2147352576 && kernel_errno <= -2147352475 ? kernel_errno + 2147352576 : 1062;
}
constexpr int KERNEL_ERROR_UNKNOWN = -2147352576; /* 0x80020000 */
constexpr int KERNEL_ERROR_EPERM = -2147352575; /* 0x80020001 */
constexpr int KERNEL_ERROR_ENOENT = -2147352574; /* 0x80020002 */
constexpr int KERNEL_ERROR_ESRCH = -2147352573; /* 0x80020003 */
constexpr int KERNEL_ERROR_EINTR = -2147352572; /* 0x80020004 */
constexpr int KERNEL_ERROR_EIO = -2147352571; /* 0x80020005 */
constexpr int KERNEL_ERROR_ENXIO = -2147352570; /* 0x80020006 */
constexpr int KERNEL_ERROR_E2BIG = -2147352569; /* 0x80020007 */
constexpr int KERNEL_ERROR_ENOEXEC = -2147352568; /* 0x80020008 */
constexpr int KERNEL_ERROR_EBADF = -2147352567; /* 0x80020009 */
constexpr int KERNEL_ERROR_ECHILD = -2147352566; /* 0x8002000A */
constexpr int KERNEL_ERROR_EDEADLK = -2147352565; /* 0x8002000B */
constexpr int KERNEL_ERROR_ENOMEM = -2147352564; /* 0x8002000C */
constexpr int KERNEL_ERROR_EACCES = -2147352563; /* 0x8002000D */
constexpr int KERNEL_ERROR_EFAULT = -2147352562; /* 0x8002000E */
constexpr int KERNEL_ERROR_ENOTBLK = -2147352561; /* 0x8002000F */
constexpr int KERNEL_ERROR_EBUSY = -2147352560; /* 0x80020010 */
constexpr int KERNEL_ERROR_EEXIST = -2147352559; /* 0x80020011 */
constexpr int KERNEL_ERROR_EXDEV = -2147352558; /* 0x80020012 */
constexpr int KERNEL_ERROR_ENODEV = -2147352557; /* 0x80020013 */
constexpr int KERNEL_ERROR_ENOTDIR = -2147352556; /* 0x80020014 */
constexpr int KERNEL_ERROR_EISDIR = -2147352555; /* 0x80020015 */
constexpr int KERNEL_ERROR_EINVAL = -2147352554; /* 0x80020016 */
constexpr int KERNEL_ERROR_ENFILE = -2147352553; /* 0x80020017 */
constexpr int KERNEL_ERROR_EMFILE = -2147352552; /* 0x80020018 */
constexpr int KERNEL_ERROR_ENOTTY = -2147352551; /* 0x80020019 */
constexpr int KERNEL_ERROR_ETXTBSY = -2147352550; /* 0x8002001A */
constexpr int KERNEL_ERROR_EFBIG = -2147352549; /* 0x8002001B */
constexpr int KERNEL_ERROR_ENOSPC = -2147352548; /* 0x8002001C */
constexpr int KERNEL_ERROR_ESPIPE = -2147352547; /* 0x8002001D */
constexpr int KERNEL_ERROR_EROFS = -2147352546; /* 0x8002001E */
constexpr int KERNEL_ERROR_EMLINK = -2147352545; /* 0x8002001F */
constexpr int KERNEL_ERROR_EPIPE = -2147352544; /* 0x80020020 */
constexpr int KERNEL_ERROR_EDOM = -2147352543; /* 0x80020021 */
constexpr int KERNEL_ERROR_ERANGE = -2147352542; /* 0x80020022 */
constexpr int KERNEL_ERROR_EAGAIN = -2147352541; /* 0x80020023 */
constexpr int KERNEL_ERROR_EWOULDBLOCK = -2147352541; /* 0x80020023 */
constexpr int KERNEL_ERROR_EINPROGRESS = -2147352540; /* 0x80020024 */
constexpr int KERNEL_ERROR_EALREADY = -2147352539; /* 0x80020025 */
constexpr int KERNEL_ERROR_ENOTSOCK = -2147352538; /* 0x80020026 */
constexpr int KERNEL_ERROR_EDESTADDRREQ = -2147352537; /* 0x80020027 */
constexpr int KERNEL_ERROR_EMSGSIZE = -2147352536; /* 0x80020028 */
constexpr int KERNEL_ERROR_EPROTOTYPE = -2147352535; /* 0x80020029 */
constexpr int KERNEL_ERROR_ENOPROTOOPT = -2147352534; /* 0x8002002A */
constexpr int KERNEL_ERROR_EPROTONOSUPPORT = -2147352533; /* 0x8002002B */
constexpr int KERNEL_ERROR_ESOCKTNOSUPPORT = -2147352532; /* 0x8002002C */
constexpr int KERNEL_ERROR_EOPNOTSUPP = -2147352531; /* 0x8002002D */
constexpr int KERNEL_ERROR_ENOTSUP = -2147352531; /* 0x8002002D */
constexpr int KERNEL_ERROR_EPFNOSUPPORT = -2147352530; /* 0x8002002E */
constexpr int KERNEL_ERROR_EAFNOSUPPORT = -2147352529; /* 0x8002002F */
constexpr int KERNEL_ERROR_EADDRINUSE = -2147352528; /* 0x80020030 */
constexpr int KERNEL_ERROR_EADDRNOTAVAIL = -2147352527; /* 0x80020031 */
constexpr int KERNEL_ERROR_ENETDOWN = -2147352526; /* 0x80020032 */
constexpr int KERNEL_ERROR_ENETUNREACH = -2147352525; /* 0x80020033 */
constexpr int KERNEL_ERROR_ENETRESET = -2147352524; /* 0x80020034 */
constexpr int KERNEL_ERROR_ECONNABORTED = -2147352523; /* 0x80020035 */
constexpr int KERNEL_ERROR_ECONNRESET = -2147352522; /* 0x80020036 */
constexpr int KERNEL_ERROR_ENOBUFS = -2147352521; /* 0x80020037 */
constexpr int KERNEL_ERROR_EISCONN = -2147352520; /* 0x80020038 */
constexpr int KERNEL_ERROR_ENOTCONN = -2147352519; /* 0x80020039 */
constexpr int KERNEL_ERROR_ESHUTDOWN = -2147352518; /* 0x8002003A */
constexpr int KERNEL_ERROR_ETOOMANYREFS = -2147352517; /* 0x8002003B */
constexpr int KERNEL_ERROR_ETIMEDOUT = -2147352516; /* 0x8002003C */
constexpr int KERNEL_ERROR_ECONNREFUSED = -2147352515; /* 0x8002003D */
constexpr int KERNEL_ERROR_ELOOP = -2147352514; /* 0x8002003E */
constexpr int KERNEL_ERROR_ENAMETOOLONG = -2147352513; /* 0x8002003F */
constexpr int KERNEL_ERROR_EHOSTDOWN = -2147352512; /* 0x80020040 */
constexpr int KERNEL_ERROR_EHOSTUNREACH = -2147352511; /* 0x80020041 */
constexpr int KERNEL_ERROR_ENOTEMPTY = -2147352510; /* 0x80020042 */
constexpr int KERNEL_ERROR_EPROCLIM = -2147352509; /* 0x80020043 */
constexpr int KERNEL_ERROR_EUSERS = -2147352508; /* 0x80020044 */
constexpr int KERNEL_ERROR_EDQUOT = -2147352507; /* 0x80020045 */
constexpr int KERNEL_ERROR_ESTALE = -2147352506; /* 0x80020046 */
constexpr int KERNEL_ERROR_EREMOTE = -2147352505; /* 0x80020047 */
constexpr int KERNEL_ERROR_EBADRPC = -2147352504; /* 0x80020048 */
constexpr int KERNEL_ERROR_ERPCMISMATCH = -2147352503; /* 0x80020049 */
constexpr int KERNEL_ERROR_EPROGUNAVAIL = -2147352502; /* 0x8002004A */
constexpr int KERNEL_ERROR_EPROGMISMATCH = -2147352501; /* 0x8002004B */
constexpr int KERNEL_ERROR_EPROCUNAVAIL = -2147352500; /* 0x8002004C */
constexpr int KERNEL_ERROR_ENOLCK = -2147352499; /* 0x8002004D */
constexpr int KERNEL_ERROR_ENOSYS = -2147352498; /* 0x8002004E */
constexpr int KERNEL_ERROR_EFTYPE = -2147352497; /* 0x8002004F */
constexpr int KERNEL_ERROR_EAUTH = -2147352496; /* 0x80020050 */
constexpr int KERNEL_ERROR_ENEEDAUTH = -2147352495; /* 0x80020051 */
constexpr int KERNEL_ERROR_EIDRM = -2147352494; /* 0x80020052 */
constexpr int KERNEL_ERROR_ENOMSG = -2147352493; /* 0x80020053 */
constexpr int KERNEL_ERROR_EOVERFLOW = -2147352492; /* 0x80020054 */
constexpr int KERNEL_ERROR_ECANCELED = -2147352491; /* 0x80020055 */
constexpr int KERNEL_ERROR_EILSEQ = -2147352490; /* 0x80020056 */
constexpr int KERNEL_ERROR_ENOATTR = -2147352489; /* 0x80020057 */
constexpr int KERNEL_ERROR_EDOOFUS = -2147352488; /* 0x80020058 */
constexpr int KERNEL_ERROR_EBADMSG = -2147352487; /* 0x80020059 */
constexpr int KERNEL_ERROR_EMULTIHOP = -2147352486; /* 0x8002005A */
constexpr int KERNEL_ERROR_ENOLINK = -2147352485; /* 0x8002005B */
constexpr int KERNEL_ERROR_EPROTO = -2147352484; /* 0x8002005C */
constexpr int KERNEL_ERROR_ENOTCAPABLE = -2147352483; /* 0x8002005D */
constexpr int KERNEL_ERROR_ECAPMODE = -2147352482; /* 0x8002005E */
constexpr int KERNEL_ERROR_ENOBLK = -2147352481; /* 0x8002005F */
constexpr int KERNEL_ERROR_EICV = -2147352480; /* 0x80020060 */
constexpr int KERNEL_ERROR_ENOPLAYGOENT = -2147352479; /* 0x80020061 */
constexpr int KERNEL_ERROR_EREVOKE = -2147352478; /* 0x80020062 */
constexpr int KERNEL_ERROR_ESDKVERSION = -2147352477; /* 0x80020063 */
constexpr int KERNEL_ERROR_ESTART = -2147352476; /* 0x80020064 */
constexpr int KERNEL_ERROR_ESTOP = -2147352475; /* 0x80020065 */
} // namespace LibKernel
namespace VideoOut {
constexpr int VIDEO_OUT_ERROR_INVALID_VALUE = -2144796671; /* 0x80290001 */
constexpr int VIDEO_OUT_ERROR_INVALID_ADDRESS = -2144796670; /* 0x80290002 */
constexpr int VIDEO_OUT_ERROR_INVALID_PIXEL_FORMAT = -2144796669; /* 0x80290003 */
constexpr int VIDEO_OUT_ERROR_INVALID_PITCH = -2144796668; /* 0x80290004 */
constexpr int VIDEO_OUT_ERROR_INVALID_RESOLUTION = -2144796667; /* 0x80290005 */
constexpr int VIDEO_OUT_ERROR_INVALID_FLIP_MODE = -2144796666; /* 0x80290006 */
constexpr int VIDEO_OUT_ERROR_INVALID_TILING_MODE = -2144796665; /* 0x80290007 */
constexpr int VIDEO_OUT_ERROR_INVALID_ASPECT_RATIO = -2144796664; /* 0x80290008 */
constexpr int VIDEO_OUT_ERROR_RESOURCE_BUSY = -2144796663; /* 0x80290009 */
constexpr int VIDEO_OUT_ERROR_INVALID_INDEX = -2144796662; /* 0x8029000A */
constexpr int VIDEO_OUT_ERROR_INVALID_HANDLE = -2144796661; /* 0x8029000B */
constexpr int VIDEO_OUT_ERROR_INVALID_EVENT_QUEUE = -2144796660; /* 0x8029000C */
constexpr int VIDEO_OUT_ERROR_INVALID_EVENT = -2144796659; /* 0x8029000D */
constexpr int VIDEO_OUT_ERROR_NO_EMPTY_SLOT = -2144796657; /* 0x8029000F */
constexpr int VIDEO_OUT_ERROR_SLOT_OCCUPIED = -2144796656; /* 0x80290010 */
constexpr int VIDEO_OUT_ERROR_FLIP_QUEUE_FULL = -2144796654; /* 0x80290012 */
constexpr int VIDEO_OUT_ERROR_INVALID_MEMORY = -2144796653; /* 0x80290013 */
constexpr int VIDEO_OUT_ERROR_MEMORY_NOT_PHYSICALLY_CONTIGUOUS = -2144796652; /* 0x80290014 */
constexpr int VIDEO_OUT_ERROR_MEMORY_INVALID_ALIGNMENT = -2144796651; /* 0x80290015 */
constexpr int VIDEO_OUT_ERROR_UNSUPPORTED_OUTPUT_MODE = -2144796650; /* 0x80290016 */
constexpr int VIDEO_OUT_ERROR_OVERFLOW = -2144796649; /* 0x80290017 */
constexpr int VIDEO_OUT_ERROR_NO_DEVICE = -2144796648; /* 0x80290018 */
constexpr int VIDEO_OUT_ERROR_UNAVAILABLE_OUTPUT_MODE = -2144796647; /* 0x80290019 */
constexpr int VIDEO_OUT_ERROR_INVALID_OPTION = -2144796646; /* 0x8029001A */
constexpr int VIDEO_OUT_ERROR_PORT_UNSUPPORTED_FUNCTION = -2144796645; /* 0x8029001B */
constexpr int VIDEO_OUT_ERROR_UNSUPPORTED_OPERATION = -2144796644; /* 0x8029001C */
constexpr int VIDEO_OUT_ERROR_FATAL = -2144796417; /* 0x802900FF */
constexpr int VIDEO_OUT_ERROR_UNKNOWN = -2144796418; /* 0x802900FE */
constexpr int VIDEO_OUT_ERROR_ENOMEM = -2144792564; /* 0x8029100C */
} // namespace VideoOut
namespace SystemService {
constexpr int SYSTEM_SERVICE_ERROR_INTERNAL = -2136932351; /* 0x80A10001 */
constexpr int SYSTEM_SERVICE_ERROR_UNAVAILABLE = -2136932350; /* 0x80A10002 */
constexpr int SYSTEM_SERVICE_ERROR_PARAMETER = -2136932349; /* 0x80A10003 */
constexpr int SYSTEM_SERVICE_ERROR_NO_EVENT = -2136932348; /* 0x80A10004 */
constexpr int SYSTEM_SERVICE_ERROR_REJECTED = -2136932347; /* 0x80A10005 */
constexpr int SYSTEM_SERVICE_ERROR_NEED_DISPLAY_SAFE_AREA_SETTINGS = -2136932346; /* 0x80A10006 */
constexpr int SYSTEM_SERVICE_ERROR_INVALID_URI_LEN = -2136932345; /* 0x80A10007 */
constexpr int SYSTEM_SERVICE_ERROR_INVALID_URI_SCHEME = -2136932344; /* 0x80A10008 */
constexpr int SYSTEM_SERVICE_ERROR_NO_APP_INFO = -2136932343; /* 0x80A10009 */
constexpr int SYSTEM_SERVICE_ERROR_NOT_FLAG_IN_PARAM_SFO = -2136932342; /* 0x80A1000A */
} // namespace SystemService
} // namespace Kyty::Libs
#endif // KYTY_EMU_ENABLED
#endif /* EMULATOR_INCLUDE_EMULATOR_LIBS_ERRNO_H_ */