Revert external enum renaming
This commit is contained in:
parent
6534604cdf
commit
34b433628c
5 changed files with 392 additions and 384 deletions
|
@ -253,7 +253,7 @@ namespace Ryujinx.HLE.HOS.Kernel
|
||||||
|
|
||||||
ElfDynamicTag tag = (ElfDynamicTag)tagVal;
|
ElfDynamicTag tag = (ElfDynamicTag)tagVal;
|
||||||
|
|
||||||
if (tag == ElfDynamicTag.Null)
|
if (tag == ElfDynamicTag.DT_NULL)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -261,9 +261,9 @@ namespace Ryujinx.HLE.HOS.Kernel
|
||||||
dynamic[tag] = value;
|
dynamic[tag] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dynamic.TryGetValue(ElfDynamicTag.StrTab, out long strTab) ||
|
if (!dynamic.TryGetValue(ElfDynamicTag.DT_STRTAB, out long strTab) ||
|
||||||
!dynamic.TryGetValue(ElfDynamicTag.SymTab, out long symTab) ||
|
!dynamic.TryGetValue(ElfDynamicTag.DT_SYMTAB, out long symTab) ||
|
||||||
!dynamic.TryGetValue(ElfDynamicTag.SymEnt, out long symEntSize))
|
!dynamic.TryGetValue(ElfDynamicTag.DT_SYMENT, out long symEntSize))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,83 +14,83 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
private static Dictionary<WsaError, LinuxError> _errorMap = new Dictionary<WsaError, LinuxError>
|
private static Dictionary<WsaError, LinuxError> _errorMap = new Dictionary<WsaError, LinuxError>
|
||||||
{
|
{
|
||||||
// WSAEINTR
|
// WSAEINTR
|
||||||
{WsaError.Interrupted, LinuxError.Intr},
|
{WsaError.WSAEINTR, LinuxError.EINTR},
|
||||||
// WSAEWOULDBLOCK
|
// WSAEWOULDBLOCK
|
||||||
{WsaError.WouldBlock, LinuxError.WouldBlock},
|
{WsaError.WSAEWOULDBLOCK, LinuxError.EWOULDBLOCK},
|
||||||
// WSAEINPROGRESS
|
// WSAEINPROGRESS
|
||||||
{WsaError.InProgress, LinuxError.InProgress},
|
{WsaError.WSAEINPROGRESS, LinuxError.EINPROGRESS},
|
||||||
// WSAEALREADY
|
// WSAEALREADY
|
||||||
{WsaError.AlreadyInProgress, LinuxError.Already},
|
{WsaError.WSAEALREADY, LinuxError.EALREADY},
|
||||||
// WSAENOTSOCK
|
// WSAENOTSOCK
|
||||||
{WsaError.NotSocket, LinuxError.NotSock},
|
{WsaError.WSAENOTSOCK, LinuxError.ENOTSOCK},
|
||||||
// WSAEDESTADDRREQ
|
// WSAEDESTADDRREQ
|
||||||
{WsaError.DestinationAddressRequired, LinuxError.DestAddrReq},
|
{WsaError.WSAEDESTADDRREQ, LinuxError.EDESTADDRREQ},
|
||||||
// WSAEMSGSIZE
|
// WSAEMSGSIZE
|
||||||
{WsaError.MessageSize, LinuxError.MsgSize},
|
{WsaError.WSAEMSGSIZE, LinuxError.EMSGSIZE},
|
||||||
// WSAEPROTOTYPE
|
// WSAEPROTOTYPE
|
||||||
{WsaError.ProtocolType, LinuxError.ProtoType},
|
{WsaError.WSAEPROTOTYPE, LinuxError.EPROTOTYPE},
|
||||||
// WSAENOPROTOOPT
|
// WSAENOPROTOOPT
|
||||||
{WsaError.ProtocolOption, LinuxError.NoProtoOpt},
|
{WsaError.WSAENOPROTOOPT, LinuxError.ENOPROTOOPT},
|
||||||
// WSAEPROTONOSUPPORT
|
// WSAEPROTONOSUPPORT
|
||||||
{WsaError.ProtocolNotSupported, LinuxError.ProtoNoSupport},
|
{WsaError.WSAEPROTONOSUPPORT, LinuxError.EPROTONOSUPPORT},
|
||||||
// WSAESOCKTNOSUPPORT
|
// WSAESOCKTNOSUPPORT
|
||||||
{WsaError.SocketNotSupported, LinuxError.SocktNoSupport},
|
{WsaError.WSAESOCKTNOSUPPORT, LinuxError.ESOCKTNOSUPPORT},
|
||||||
// WSAEOPNOTSUPP
|
// WSAEOPNOTSUPP
|
||||||
{WsaError.OperationNotSupported, LinuxError.OpNotSupp},
|
{WsaError.WSAEOPNOTSUPP, LinuxError.EOPNOTSUPP},
|
||||||
// WSAEPFNOSUPPORT
|
// WSAEPFNOSUPPORT
|
||||||
{WsaError.ProtocolFamilyNotSupported, LinuxError.PfNoSupport},
|
{WsaError.WSAEPFNOSUPPORT, LinuxError.EPFNOSUPPORT},
|
||||||
// WSAEAFNOSUPPORT
|
// WSAEAFNOSUPPORT
|
||||||
{WsaError.AddressFamilyNotSupported, LinuxError.AfNoSupport},
|
{WsaError.WSAEAFNOSUPPORT, LinuxError.EAFNOSUPPORT},
|
||||||
// WSAEADDRINUSE
|
// WSAEADDRINUSE
|
||||||
{WsaError.AddressAlreadyInUse, LinuxError.AddrInUse},
|
{WsaError.WSAEADDRINUSE, LinuxError.EADDRINUSE},
|
||||||
// WSAEADDRNOTAVAIL
|
// WSAEADDRNOTAVAIL
|
||||||
{WsaError.AddressNotAvailable, LinuxError.AddrNotAvail},
|
{WsaError.WSAEADDRNOTAVAIL, LinuxError.EADDRNOTAVAIL},
|
||||||
// WSAENETDOWN
|
// WSAENETDOWN
|
||||||
{WsaError.NetworkDown, LinuxError.NetDown},
|
{WsaError.WSAENETDOWN, LinuxError.ENETDOWN},
|
||||||
// WSAENETUNREACH
|
// WSAENETUNREACH
|
||||||
{WsaError.NetworkUnreachable, LinuxError.NetUnReach},
|
{WsaError.WSAENETUNREACH, LinuxError.ENETUNREACH},
|
||||||
// WSAENETRESET
|
// WSAENETRESET
|
||||||
{WsaError.NetworkReset, LinuxError.NetReset},
|
{WsaError.WSAENETRESET, LinuxError.ENETRESET},
|
||||||
// WSAECONNABORTED
|
// WSAECONNABORTED
|
||||||
{WsaError.ConnectionAborted, LinuxError.ConnAborted},
|
{WsaError.WSAECONNABORTED, LinuxError.ECONNABORTED},
|
||||||
// WSAECONNRESET
|
// WSAECONNRESET
|
||||||
{WsaError.ConnectionReset, LinuxError.ConnReset},
|
{WsaError.WSAECONNRESET, LinuxError.ECONNRESET},
|
||||||
// WSAENOBUFS
|
// WSAENOBUFS
|
||||||
{WsaError.NoBufferSpaceAvailable, LinuxError.NoBufs},
|
{WsaError.WSAENOBUFS, LinuxError.ENOBUFS},
|
||||||
// WSAEISCONN
|
// WSAEISCONN
|
||||||
{WsaError.IsConnected, LinuxError.IsConn},
|
{WsaError.WSAEISCONN, LinuxError.EISCONN},
|
||||||
// WSAENOTCONN
|
// WSAENOTCONN
|
||||||
{WsaError.NotConnected, LinuxError.NotConn},
|
{WsaError.WSAENOTCONN, LinuxError.ENOTCONN},
|
||||||
// WSAESHUTDOWN
|
// WSAESHUTDOWN
|
||||||
{WsaError.Shutdown, LinuxError.Shutdown},
|
{WsaError.WSAESHUTDOWN, LinuxError.ESHUTDOWN},
|
||||||
// WSAETOOMANYREFS
|
// WSAETOOMANYREFS
|
||||||
{WsaError.TooManyReferences, LinuxError.TooManyRefs},
|
{WsaError.WSAETOOMANYREFS, LinuxError.ETOOMANYREFS},
|
||||||
// WSAETIMEDOUT
|
// WSAETIMEDOUT
|
||||||
{WsaError.TimedOut, LinuxError.TimedOut},
|
{WsaError.WSAETIMEDOUT, LinuxError.ETIMEDOUT},
|
||||||
// WSAECONNREFUSED
|
// WSAECONNREFUSED
|
||||||
{WsaError.ConnectionRefused, LinuxError.ConnRefused},
|
{WsaError.WSAECONNREFUSED, LinuxError.ECONNREFUSED},
|
||||||
// WSAELOOP
|
// WSAELOOP
|
||||||
{WsaError.Loop, LinuxError.Loop},
|
{WsaError.WSAELOOP, LinuxError.ELOOP},
|
||||||
// WSAENAMETOOLONG
|
// WSAENAMETOOLONG
|
||||||
{WsaError.NameTooLong, LinuxError.NameTooLong},
|
{WsaError.WSAENAMETOOLONG, LinuxError.ENAMETOOLONG},
|
||||||
// WSAEHOSTDOWN
|
// WSAEHOSTDOWN
|
||||||
{WsaError.HostDown, LinuxError.HostDown},
|
{WsaError.WSAEHOSTDOWN, LinuxError.EHOSTDOWN},
|
||||||
// WSAEHOSTUNREACH
|
// WSAEHOSTUNREACH
|
||||||
{WsaError.HostUnreachable, LinuxError.HostUnReach},
|
{WsaError.WSAEHOSTUNREACH, LinuxError.EHOSTUNREACH},
|
||||||
// WSAENOTEMPTY
|
// WSAENOTEMPTY
|
||||||
{WsaError.NotEmpty, LinuxError.NotEmpty},
|
{WsaError.WSAENOTEMPTY, LinuxError.ENOTEMPTY},
|
||||||
// WSAEUSERS
|
// WSAEUSERS
|
||||||
{WsaError.UserQuota, LinuxError.Users},
|
{WsaError.WSAEUSERS, LinuxError.EUSERS},
|
||||||
// WSAEDQUOT
|
// WSAEDQUOT
|
||||||
{WsaError.DiskQuota, LinuxError.DQuot},
|
{WsaError.WSAEDQUOT, LinuxError.EDQUOT},
|
||||||
// WSAESTALE
|
// WSAESTALE
|
||||||
{WsaError.Stale, LinuxError.Stale},
|
{WsaError.WSAESTALE, LinuxError.ESTALE},
|
||||||
// WSAEREMOTE
|
// WSAEREMOTE
|
||||||
{WsaError.Remote, LinuxError.Remote},
|
{WsaError.WSAEREMOTE, LinuxError.EREMOTE},
|
||||||
// WSAEINVAL
|
// WSAEINVAL
|
||||||
{WsaError.InvalidArgument, LinuxError.InVal},
|
{WsaError.WSAEINVAL, LinuxError.EINVAL},
|
||||||
// WSAEFAULT
|
// WSAEFAULT
|
||||||
{WsaError.Fault, LinuxError.Fault},
|
{WsaError.WSAEFAULT, LinuxError.EFAULT},
|
||||||
// NOERROR
|
// NOERROR
|
||||||
{0, 0}
|
{0, 0}
|
||||||
};
|
};
|
||||||
|
@ -159,7 +159,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
private long WriteBsdResult(ServiceCtx context, int result, LinuxError errorCode = 0)
|
private long WriteBsdResult(ServiceCtx context, int result, LinuxError errorCode = 0)
|
||||||
{
|
{
|
||||||
if (errorCode != LinuxError.Success)
|
if (errorCode != LinuxError.SUCCESS)
|
||||||
{
|
{
|
||||||
result = -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
private LinuxError SetResultErrno(Socket socket, int result)
|
private LinuxError SetResultErrno(Socket socket, int result)
|
||||||
{
|
{
|
||||||
return result == 0 && !socket.Blocking ? LinuxError.WouldBlock : LinuxError.Success;
|
return result == 0 && !socket.Blocking ? LinuxError.EWOULDBLOCK : LinuxError.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AddressFamily ConvertFromBsd(int domain)
|
private AddressFamily ConvertFromBsd(int domain)
|
||||||
|
@ -204,13 +204,13 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
if (domain == AddressFamily.Unknown)
|
if (domain == AddressFamily.Unknown)
|
||||||
{
|
{
|
||||||
return WriteBsdResult(context, -1, LinuxError.ProtoNoSupport);
|
return WriteBsdResult(context, -1, LinuxError.EPROTONOSUPPORT);
|
||||||
}
|
}
|
||||||
else if ((type == SocketType.Seqpacket || type == SocketType.Raw) && !_isPrivileged)
|
else if ((type == SocketType.Seqpacket || type == SocketType.Raw) && !_isPrivileged)
|
||||||
{
|
{
|
||||||
if (domain != AddressFamily.InterNetwork || type != SocketType.Raw || protocol != ProtocolType.Icmp)
|
if (domain != AddressFamily.InterNetwork || type != SocketType.Raw || protocol != ProtocolType.Icmp)
|
||||||
{
|
{
|
||||||
return WriteBsdResult(context, -1, LinuxError.NoEnt);
|
return WriteBsdResult(context, -1, LinuxError.ENOENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
byte[] rawPath = context.Memory.ReadBytes(bufferPosition, bufferSize);
|
byte[] rawPath = context.Memory.ReadBytes(bufferPosition, bufferSize);
|
||||||
string path = Encoding.ASCII.GetString(rawPath);
|
string path = Encoding.ASCII.GetString(rawPath);
|
||||||
|
|
||||||
WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
|
|
||||||
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed. Path: {path} - " +
|
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed. Path: {path} - " +
|
||||||
$"Flags: {flags}");
|
$"Flags: {flags}");
|
||||||
|
@ -325,7 +325,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
// Select(u32 nfds, nn::socket::timeout timeout, buffer<nn::socket::fd_set, 0x21, 0> readfds_in, buffer<nn::socket::fd_set, 0x21, 0> writefds_in, buffer<nn::socket::fd_set, 0x21, 0> errorfds_in) -> (i32 ret, u32 bsd_errno, buffer<nn::socket::fd_set, 0x22, 0> readfds_out, buffer<nn::socket::fd_set, 0x22, 0> writefds_out, buffer<nn::socket::fd_set, 0x22, 0> errorfds_out)
|
// Select(u32 nfds, nn::socket::timeout timeout, buffer<nn::socket::fd_set, 0x21, 0> readfds_in, buffer<nn::socket::fd_set, 0x21, 0> writefds_in, buffer<nn::socket::fd_set, 0x21, 0> errorfds_in) -> (i32 ret, u32 bsd_errno, buffer<nn::socket::fd_set, 0x22, 0> readfds_out, buffer<nn::socket::fd_set, 0x22, 0> writefds_out, buffer<nn::socket::fd_set, 0x22, 0> errorfds_out)
|
||||||
public long Select(ServiceCtx context)
|
public long Select(ServiceCtx context)
|
||||||
{
|
{
|
||||||
WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
|
|
||||||
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
|
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
if (timeout < -1 || fdsCount < 0 || (fdsCount * 8) > bufferSize)
|
if (timeout < -1 || fdsCount < 0 || (fdsCount * 8) > bufferSize)
|
||||||
{
|
{
|
||||||
return WriteBsdResult(context, -1, LinuxError.InVal);
|
return WriteBsdResult(context, -1, LinuxError.EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
PollEvent[] events = new PollEvent[fdsCount];
|
PollEvent[] events = new PollEvent[fdsCount];
|
||||||
|
@ -356,8 +356,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
if (socket == null)
|
if (socket == null)
|
||||||
{
|
{
|
||||||
return WriteBsdResult(context, -1, LinuxError.BadF);
|
return WriteBsdResult(context, -1, LinuxError.EBADF);}
|
||||||
}
|
|
||||||
|
|
||||||
PollEvent.EventTypeMask inputEvents = (PollEvent.EventTypeMask)context.Memory.ReadInt16(bufferPosition + i * 8 + 4);
|
PollEvent.EventTypeMask inputEvents = (PollEvent.EventTypeMask)context.Memory.ReadInt16(bufferPosition + i * 8 + 4);
|
||||||
PollEvent.EventTypeMask outputEvents = (PollEvent.EventTypeMask)context.Memory.ReadInt16(bufferPosition + i * 8 + 6);
|
PollEvent.EventTypeMask outputEvents = (PollEvent.EventTypeMask)context.Memory.ReadInt16(bufferPosition + i * 8 + 6);
|
||||||
|
@ -406,7 +405,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
if (!isValidEvent)
|
if (!isValidEvent)
|
||||||
{
|
{
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Poll input event type: {Event.InputEvents}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Poll input event type: {Event.InputEvents}");
|
||||||
return WriteBsdResult(context, -1, LinuxError.InVal);
|
return WriteBsdResult(context, -1, LinuxError.EINVAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,13 +454,13 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
context.Memory.WriteInt16(bufferPosition + i * 8 + 6, (short)outputEvents);
|
context.Memory.WriteInt16(bufferPosition + i * 8 + 6, (short)outputEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
return WriteBsdResult(context, readEvents.Count + writeEvents.Count + errorEvents.Count, LinuxError.Success);
|
return WriteBsdResult(context, readEvents.Count + writeEvents.Count + errorEvents.Count, LinuxError.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sysctl(buffer<unknown, 0x21, 0>, buffer<unknown, 0x21, 0>) -> (i32 ret, u32 bsd_errno, u32, buffer<unknown, 0x22, 0>)
|
// Sysctl(buffer<unknown, 0x21, 0>, buffer<unknown, 0x21, 0>) -> (i32 ret, u32 bsd_errno, u32, buffer<unknown, 0x22, 0>)
|
||||||
public long Sysctl(ServiceCtx context)
|
public long Sysctl(ServiceCtx context)
|
||||||
{
|
{
|
||||||
WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
|
|
||||||
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
|
Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
|
||||||
|
|
||||||
|
@ -476,7 +475,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long receivePosition, long receiveLength) = context.Request.GetBufferType0x22();
|
(long receivePosition, long receiveLength) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -486,7 +485,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
&& (socketFlags & SocketFlags.Peek) == 0)
|
&& (socketFlags & SocketFlags.Peek) == 0)
|
||||||
{
|
{
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Recv flags: {socketFlags}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Recv flags: {socketFlags}");
|
||||||
return WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
return WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] receivedBuffer = new byte[receiveLength];
|
byte[] receivedBuffer = new byte[receiveLength];
|
||||||
|
@ -517,7 +516,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
(long sockAddrInPosition, long sockAddrInSize) = context.Request.GetBufferType0x21();
|
(long sockAddrInPosition, long sockAddrInSize) = context.Request.GetBufferType0x21();
|
||||||
(long sockAddrOutPosition, long sockAddrOutSize) = context.Request.GetBufferType0x22(1);
|
(long sockAddrOutPosition, long sockAddrOutSize) = context.Request.GetBufferType0x22(1);
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -528,7 +527,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
{
|
{
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Recv flags: {socketFlags}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Recv flags: {socketFlags}");
|
||||||
|
|
||||||
return WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
return WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] receivedBuffer = new byte[receiveLength];
|
byte[] receivedBuffer = new byte[receiveLength];
|
||||||
|
@ -559,7 +558,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -570,7 +569,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
{
|
{
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Send flags: {socketFlags}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Send flags: {socketFlags}");
|
||||||
|
|
||||||
return WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
return WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] sendBuffer = context.Memory.ReadBytes(sendPosition, sendSize);
|
byte[] sendBuffer = context.Memory.ReadBytes(sendPosition, sendSize);
|
||||||
|
@ -599,7 +598,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
||||||
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x21(1);
|
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x21(1);
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -610,7 +609,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
{
|
{
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Send flags: {socketFlags}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Send flags: {socketFlags}");
|
||||||
|
|
||||||
return WriteBsdResult(context, -1, LinuxError.OpNotSupp);
|
return WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] sendBuffer = context.Memory.ReadBytes(sendPosition, sendSize);
|
byte[] sendBuffer = context.Memory.ReadBytes(sendPosition, sendSize);
|
||||||
|
@ -638,12 +637,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
Socket newSocket = null;
|
Socket newSocket = null;
|
||||||
|
|
||||||
|
@ -656,11 +655,11 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
errno = ConvertError((WsaError)exception.ErrorCode);
|
errno = ConvertError((WsaError)exception.ErrorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newSocket == null && errno == LinuxError.Success)
|
if (newSocket == null && errno == LinuxError.SUCCESS)
|
||||||
{
|
{
|
||||||
errno = LinuxError.WouldBlock;
|
errno = LinuxError.EWOULDBLOCK;
|
||||||
}
|
}
|
||||||
else if (errno == LinuxError.Success)
|
else if (errno == LinuxError.SUCCESS)
|
||||||
{
|
{
|
||||||
BsdSocket newBsdSocket = new BsdSocket
|
BsdSocket newBsdSocket = new BsdSocket
|
||||||
{
|
{
|
||||||
|
@ -692,12 +691,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -721,12 +720,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IPEndPoint endPoint = ParseSockAddr(context, bufferPos, bufferSize);
|
IPEndPoint endPoint = ParseSockAddr(context, bufferPos, bufferSize);
|
||||||
|
@ -749,12 +748,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
WriteSockAddr(context, bufferPos, socket, true);
|
WriteSockAddr(context, bufferPos, socket, true);
|
||||||
WriteBsdResult(context, 0, errno);
|
WriteBsdResult(context, 0, errno);
|
||||||
|
@ -771,12 +770,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
WriteSockAddr(context, bufferPos, socket, false);
|
WriteSockAddr(context, bufferPos, socket, false);
|
||||||
WriteBsdResult(context, 0, errno);
|
WriteBsdResult(context, 0, errno);
|
||||||
|
@ -795,12 +794,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x22();
|
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.NoProtoOpt;
|
errno = LinuxError.ENOPROTOOPT;
|
||||||
|
|
||||||
if (level == 0xFFFF)
|
if (level == 0xFFFF)
|
||||||
{
|
{
|
||||||
|
@ -821,12 +820,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
int socketFd = context.RequestData.ReadInt32();
|
int socketFd = context.RequestData.ReadInt32();
|
||||||
int backlog = context.RequestData.ReadInt32();
|
int backlog = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -848,7 +847,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
BsdIoctl cmd = (BsdIoctl)context.RequestData.ReadInt32();
|
BsdIoctl cmd = (BsdIoctl)context.RequestData.ReadInt32();
|
||||||
int bufferCount = context.RequestData.ReadInt32();
|
int bufferCount = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
|
@ -856,7 +855,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case BsdIoctl.AtMark:
|
case BsdIoctl.AtMark:
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x22();
|
(long bufferPosition, long bufferSize) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
|
@ -865,7 +864,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
errno = LinuxError.OpNotSupp;
|
errno = LinuxError.EOPNOTSUPP;
|
||||||
|
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Ioctl Cmd: {cmd}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported Ioctl Cmd: {cmd}");
|
||||||
break;
|
break;
|
||||||
|
@ -883,12 +882,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
int arg = context.RequestData.ReadInt32();
|
int arg = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
if (cmd == 0x3)
|
if (cmd == 0x3)
|
||||||
{
|
{
|
||||||
|
@ -901,7 +900,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
errno = LinuxError.OpNotSupp;
|
errno = LinuxError.EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -931,18 +930,18 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
socket.Handle.GetSocketOption(SocketOptionLevel.Socket, optionName, optionValue);
|
socket.Handle.GetSocketOption(SocketOptionLevel.Socket, optionName, optionValue);
|
||||||
context.Memory.WriteBytes(optionValuePosition, optionValue);
|
context.Memory.WriteBytes(optionValuePosition, optionValue);
|
||||||
|
|
||||||
return LinuxError.Success;
|
return LinuxError.SUCCESS;
|
||||||
|
|
||||||
case (SocketOptionName)0x200:
|
case (SocketOptionName)0x200:
|
||||||
socket.Handle.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, optionValue);
|
socket.Handle.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, optionValue);
|
||||||
context.Memory.WriteBytes(optionValuePosition, optionValue);
|
context.Memory.WriteBytes(optionValuePosition, optionValue);
|
||||||
|
|
||||||
return LinuxError.Success;
|
return LinuxError.SUCCESS;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported SetSockOpt OptionName: {optionName}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported SetSockOpt OptionName: {optionName}");
|
||||||
|
|
||||||
return LinuxError.OpNotSupp;
|
return LinuxError.EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SocketException exception)
|
catch (SocketException exception)
|
||||||
|
@ -971,23 +970,23 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
case SocketOptionName.ReuseAddress:
|
case SocketOptionName.ReuseAddress:
|
||||||
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, optionName, context.Memory.ReadInt32(optionValuePosition));
|
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, optionName, context.Memory.ReadInt32(optionValuePosition));
|
||||||
|
|
||||||
return LinuxError.Success;
|
return LinuxError.SUCCESS;
|
||||||
|
|
||||||
case (SocketOptionName)0x200:
|
case (SocketOptionName)0x200:
|
||||||
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, context.Memory.ReadInt32(optionValuePosition));
|
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, context.Memory.ReadInt32(optionValuePosition));
|
||||||
|
|
||||||
return LinuxError.Success;
|
return LinuxError.SUCCESS;
|
||||||
|
|
||||||
case SocketOptionName.Linger:
|
case SocketOptionName.Linger:
|
||||||
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger,
|
socket.Handle.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger,
|
||||||
new LingerOption(context.Memory.ReadInt32(optionValuePosition) != 0, context.Memory.ReadInt32(optionValuePosition + 4)));
|
new LingerOption(context.Memory.ReadInt32(optionValuePosition) != 0, context.Memory.ReadInt32(optionValuePosition + 4)));
|
||||||
|
|
||||||
return LinuxError.Success;
|
return LinuxError.SUCCESS;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported SetSockOpt OptionName: {optionName}");
|
Logger.PrintWarning(LogClass.ServiceBsd, $"Unsupported SetSockOpt OptionName: {optionName}");
|
||||||
|
|
||||||
return LinuxError.OpNotSupp;
|
return LinuxError.EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SocketException exception)
|
catch (SocketException exception)
|
||||||
|
@ -1005,12 +1004,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
(long bufferPos, long bufferSize) = context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.NoProtoOpt;
|
errno = LinuxError.ENOPROTOOPT;
|
||||||
|
|
||||||
if (level == 0xFFFF)
|
if (level == 0xFFFF)
|
||||||
{
|
{
|
||||||
|
@ -1031,16 +1030,16 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
int socketFd = context.RequestData.ReadInt32();
|
int socketFd = context.RequestData.ReadInt32();
|
||||||
int how = context.RequestData.ReadInt32();
|
int how = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
{
|
{
|
||||||
errno = LinuxError.InVal;
|
errno = LinuxError.EINVAL;
|
||||||
|
|
||||||
if (how >= 0 && how <= 2)
|
if (how >= 0 && how <= 2)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -1061,11 +1060,11 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
{
|
{
|
||||||
int how = context.RequestData.ReadInt32();
|
int how = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.InVal;
|
LinuxError errno = LinuxError.EINVAL;
|
||||||
|
|
||||||
if (how >= 0 && how <= 2)
|
if (how >= 0 && how <= 2)
|
||||||
{
|
{
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
|
|
||||||
foreach (BsdSocket socket in _sockets)
|
foreach (BsdSocket socket in _sockets)
|
||||||
{
|
{
|
||||||
|
@ -1094,7 +1093,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
(long sendPosition, long sendSize) = context.Request.GetBufferType0x21();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -1123,7 +1122,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
(long receivePosition, long receiveLength) = context.Request.GetBufferType0x22();
|
(long receivePosition, long receiveLength) = context.Request.GetBufferType0x22();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
@ -1150,7 +1149,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
{
|
{
|
||||||
int socketFd = context.RequestData.ReadInt32();
|
int socketFd = context.RequestData.ReadInt32();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.BadF;
|
LinuxError errno = LinuxError.EBADF;
|
||||||
BsdSocket socket = RetrieveSocket(socketFd);
|
BsdSocket socket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
if (socket != null)
|
if (socket != null)
|
||||||
|
@ -1159,7 +1158,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
|
|
||||||
_sockets[socketFd] = null;
|
_sockets[socketFd] = null;
|
||||||
|
|
||||||
errno = LinuxError.Success;
|
errno = LinuxError.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
return WriteBsdResult(context, 0, errno);
|
return WriteBsdResult(context, 0, errno);
|
||||||
|
@ -1171,12 +1170,12 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
|
||||||
int socketFd = context.RequestData.ReadInt32();
|
int socketFd = context.RequestData.ReadInt32();
|
||||||
ulong reserved = context.RequestData.ReadUInt64();
|
ulong reserved = context.RequestData.ReadUInt64();
|
||||||
|
|
||||||
LinuxError errno = LinuxError.NoEnt;
|
LinuxError errno = LinuxError.ENOENT;
|
||||||
int newSockFd = -1;
|
int newSockFd = -1;
|
||||||
|
|
||||||
if (_isPrivileged)
|
if (_isPrivileged)
|
||||||
{
|
{
|
||||||
errno = LinuxError.BadF;
|
errno = LinuxError.EBADF;
|
||||||
|
|
||||||
BsdSocket oldSocket = RetrieveSocket(socketFd);
|
BsdSocket oldSocket = RetrieveSocket(socketFd);
|
||||||
|
|
||||||
|
|
|
@ -1,72 +1,75 @@
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.Loaders.Elf
|
namespace Ryujinx.HLE.Loaders.Elf
|
||||||
{
|
{
|
||||||
internal enum ElfDynamicTag
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||||
|
enum ElfDynamicTag
|
||||||
{
|
{
|
||||||
Null = 0,
|
DT_NULL = 0,
|
||||||
Needed = 1,
|
DT_NEEDED = 1,
|
||||||
PltRelSz = 2,
|
DT_PLTRELSZ = 2,
|
||||||
PltGoz = 3,
|
DT_PLTGOT = 3,
|
||||||
Hash = 4,
|
DT_HASH = 4,
|
||||||
StrTab = 5,
|
DT_STRTAB = 5,
|
||||||
SymTab = 6,
|
DT_SYMTAB = 6,
|
||||||
RelA = 7,
|
DT_RELA = 7,
|
||||||
RelASz = 8,
|
DT_RELASZ = 8,
|
||||||
RelAEnt = 9,
|
DT_RELAENT = 9,
|
||||||
StrSz = 10,
|
DT_STRSZ = 10,
|
||||||
SymEnt = 11,
|
DT_SYMENT = 11,
|
||||||
Init = 12,
|
DT_INIT = 12,
|
||||||
Fini = 13,
|
DT_FINI = 13,
|
||||||
SoName = 14,
|
DT_SONAME = 14,
|
||||||
RPath = 15,
|
DT_RPATH = 15,
|
||||||
Symbolic = 16,
|
DT_SYMBOLIC = 16,
|
||||||
Rel = 17,
|
DT_REL = 17,
|
||||||
RelSz = 18,
|
DT_RELSZ = 18,
|
||||||
RelEnt = 19,
|
DT_RELENT = 19,
|
||||||
PltRel = 20,
|
DT_PLTREL = 20,
|
||||||
Debug = 21,
|
DT_DEBUG = 21,
|
||||||
TextRel = 22,
|
DT_TEXTREL = 22,
|
||||||
JmpRel = 23,
|
DT_JMPREL = 23,
|
||||||
BindNow = 24,
|
DT_BIND_NOW = 24,
|
||||||
InitArray = 25,
|
DT_INIT_ARRAY = 25,
|
||||||
FiniArray = 26,
|
DT_FINI_ARRAY = 26,
|
||||||
InitArraySz = 27,
|
DT_INIT_ARRAYSZ = 27,
|
||||||
FiniArraySz = 28,
|
DT_FINI_ARRAYSZ = 28,
|
||||||
RunPath = 29,
|
DT_RUNPATH = 29,
|
||||||
Flags = 30,
|
DT_FLAGS = 30,
|
||||||
Encoding = 32,
|
DT_ENCODING = 32,
|
||||||
PreInitArray = 32,
|
DT_PREINIT_ARRAY = 32,
|
||||||
PreInitArraySz = 33,
|
DT_PREINIT_ARRAYSZ = 33,
|
||||||
GnuPrelinked = 0x6ffffdf5,
|
DT_GNU_PRELINKED = 0x6ffffdf5,
|
||||||
GnuConflictSz = 0x6ffffdf6,
|
DT_GNU_CONFLICTSZ = 0x6ffffdf6,
|
||||||
GnuLibListSz = 0x6ffffdf7,
|
DT_GNU_LIBLISTSZ = 0x6ffffdf7,
|
||||||
Checksum = 0x6ffffdf8,
|
DT_CHECKSUM = 0x6ffffdf8,
|
||||||
PltPadSz = 0x6ffffdf9,
|
DT_PLTPADSZ = 0x6ffffdf9,
|
||||||
MoveEnt = 0x6ffffdfa,
|
DT_MOVEENT = 0x6ffffdfa,
|
||||||
MoveSz = 0x6ffffdfb,
|
DT_MOVESZ = 0x6ffffdfb,
|
||||||
Feature1 = 0x6ffffdfc,
|
DT_FEATURE_1 = 0x6ffffdfc,
|
||||||
PosFlag1 = 0x6ffffdfd,
|
DT_POSFLAG_1 = 0x6ffffdfd,
|
||||||
SymInSz = 0x6ffffdfe,
|
DT_SYMINSZ = 0x6ffffdfe,
|
||||||
SymInEnt = 0x6ffffdff,
|
DT_SYMINENT = 0x6ffffdff,
|
||||||
GnuHash = 0x6ffffef5,
|
DT_GNU_HASH = 0x6ffffef5,
|
||||||
TlsDescPlt = 0x6ffffef6,
|
DT_TLSDESC_PLT = 0x6ffffef6,
|
||||||
TlsDescGot = 0x6ffffef7,
|
DT_TLSDESC_GOT = 0x6ffffef7,
|
||||||
GnuConflict = 0x6ffffef8,
|
DT_GNU_CONFLICT = 0x6ffffef8,
|
||||||
GnuLibList = 0x6ffffef9,
|
DT_GNU_LIBLIST = 0x6ffffef9,
|
||||||
Config = 0x6ffffefa,
|
DT_CONFIG = 0x6ffffefa,
|
||||||
DepAudit = 0x6ffffefb,
|
DT_DEPAUDIT = 0x6ffffefb,
|
||||||
Audit = 0x6ffffefc,
|
DT_AUDIT = 0x6ffffefc,
|
||||||
PltPad = 0x6ffffefd,
|
DT_PLTPAD = 0x6ffffefd,
|
||||||
MoveTab = 0x6ffffefe,
|
DT_MOVETAB = 0x6ffffefe,
|
||||||
SymInfo = 0x6ffffeff,
|
DT_SYMINFO = 0x6ffffeff,
|
||||||
VerSym = 0x6ffffff0,
|
DT_VERSYM = 0x6ffffff0,
|
||||||
RelaCount = 0x6ffffff9,
|
DT_RELACOUNT = 0x6ffffff9,
|
||||||
RelCount = 0x6ffffffa,
|
DT_RELCOUNT = 0x6ffffffa,
|
||||||
Flags1 = 0x6ffffffb,
|
DT_FLAGS_1 = 0x6ffffffb,
|
||||||
VerDef = 0x6ffffffc,
|
DT_VERDEF = 0x6ffffffc,
|
||||||
VerDefNum = 0x6ffffffd,
|
DT_VERDEFNUM = 0x6ffffffd,
|
||||||
VerNeed = 0x6ffffffe,
|
DT_VERNEED = 0x6ffffffe,
|
||||||
VerNeedNum = 0x6fffffff,
|
DT_VERNEEDNUM = 0x6fffffff,
|
||||||
Auxiliary = 0x7ffffffd,
|
DT_AUXILIARY = 0x7ffffffd,
|
||||||
Filter = 0x7fffffff
|
DT_FILTER = 0x7fffffff
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,45 +1,48 @@
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.Utilities
|
namespace Ryujinx.HLE.Utilities
|
||||||
{
|
{
|
||||||
internal enum LinuxError
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||||
|
enum LinuxError
|
||||||
{
|
{
|
||||||
Success = 0,
|
SUCCESS = 0,
|
||||||
Perm = 1 /* Operation not permitted */,
|
EPERM = 1 /* Operation not permitted */,
|
||||||
NoEnt = 2 /* No such file or directory */,
|
ENOENT = 2 /* No such file or directory */,
|
||||||
Srch = 3 /* No such process */,
|
ESRCH = 3 /* No such process */,
|
||||||
Intr = 4 /* Interrupted system call */,
|
EINTR = 4 /* Interrupted system call */,
|
||||||
Io = 5 /* I/O error */,
|
EIO = 5 /* I/O error */,
|
||||||
NxIo = 6 /* No such device or address */,
|
ENXIO = 6 /* No such device or address */,
|
||||||
TooBig = 7 /* Argument list too long */,
|
E2BIG = 7 /* Argument list too long */,
|
||||||
NoExec = 8 /* Exec format error */,
|
ENOEXEC = 8 /* Exec format error */,
|
||||||
BadF = 9 /* Bad file number */,
|
EBADF = 9 /* Bad file number */,
|
||||||
Child = 10 /* No child processes */,
|
ECHILD = 10 /* No child processes */,
|
||||||
Again = 11 /* Try again */,
|
EAGAIN = 11 /* Try again */,
|
||||||
NoMem = 12 /* Out of memory */,
|
ENOMEM = 12 /* Out of memory */,
|
||||||
Acces = 13 /* Permission denied */,
|
EACCES = 13 /* Permission denied */,
|
||||||
Fault = 14 /* Bad address */,
|
EFAULT = 14 /* Bad address */,
|
||||||
NotBlk = 15 /* Block device required */,
|
ENOTBLK = 15 /* Block device required */,
|
||||||
Busy = 16 /* Device or resource busy */,
|
EBUSY = 16 /* Device or resource busy */,
|
||||||
Exist = 17 /* File exists */,
|
EEXIST = 17 /* File exists */,
|
||||||
XDev = 18 /* Cross-device link */,
|
EXDEV = 18 /* Cross-device link */,
|
||||||
NoDev = 19 /* No such device */,
|
ENODEV = 19 /* No such device */,
|
||||||
NotDir = 20 /* Not a directory */,
|
ENOTDIR = 20 /* Not a directory */,
|
||||||
IsDir = 21 /* Is a directory */,
|
EISDIR = 21 /* Is a directory */,
|
||||||
InVal = 22 /* Invalid argument */,
|
EINVAL = 22 /* Invalid argument */,
|
||||||
NFile = 23 /* File table overflow */,
|
ENFILE = 23 /* File table overflow */,
|
||||||
MFile = 24 /* Too many open files */,
|
EMFILE = 24 /* Too many open files */,
|
||||||
NoTty = 25 /* Not a typewriter */,
|
ENOTTY = 25 /* Not a typewriter */,
|
||||||
TxtBsy = 26 /* Text file busy */,
|
ETXTBSY = 26 /* Text file busy */,
|
||||||
FBig = 27 /* File too large */,
|
EFBIG = 27 /* File too large */,
|
||||||
NoSpc = 28 /* No space left on device */,
|
ENOSPC = 28 /* No space left on device */,
|
||||||
SPipe = 29 /* Illegal seek */,
|
ESPIPE = 29 /* Illegal seek */,
|
||||||
RoFs = 30 /* Read-only file system */,
|
EROFS = 30 /* Read-only file system */,
|
||||||
MLink = 31 /* Too many links */,
|
EMLINK = 31 /* Too many links */,
|
||||||
Pipe = 32 /* Broken pipe */,
|
EPIPE = 32 /* Broken pipe */,
|
||||||
Dom = 33 /* Math argument out of domain of func */,
|
EDOM = 33 /* Math argument out of domain of func */,
|
||||||
Range = 34 /* Math result not representable */,
|
ERANGE = 34 /* Math result not representable */,
|
||||||
DeadLk = 35 /* Resource deadlock would occur */,
|
EDEADLK = 35 /* Resource deadlock would occur */,
|
||||||
NameTooLong = 36 /* File name too long */,
|
ENAMETOOLONG = 36 /* File name too long */,
|
||||||
NoLck = 37 /* No record locks available */,
|
ENOLCK = 37 /* No record locks available */,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This error code is special: arch syscall entry code will return
|
* This error code is special: arch syscall entry code will return
|
||||||
|
@ -48,105 +51,105 @@ namespace Ryujinx.HLE.Utilities
|
||||||
* failures due to attempts to use a nonexistent syscall, syscall
|
* failures due to attempts to use a nonexistent syscall, syscall
|
||||||
* implementations should refrain from returning -ENOSYS.
|
* implementations should refrain from returning -ENOSYS.
|
||||||
*/
|
*/
|
||||||
NoSys = 38 /* Invalid system call number */,
|
ENOSYS = 38 /* Invalid system call number */,
|
||||||
NotEmpty = 39 /* Directory not empty */,
|
ENOTEMPTY = 39 /* Directory not empty */,
|
||||||
Loop = 40 /* Too many symbolic links encountered */,
|
ELOOP = 40 /* Too many symbolic links encountered */,
|
||||||
WouldBlock = Again /* Operation would block */,
|
EWOULDBLOCK = EAGAIN /* Operation would block */,
|
||||||
NoMsg = 42 /* No message of desired type */,
|
ENOMSG = 42 /* No message of desired type */,
|
||||||
IdRm = 43 /* Identifier removed */,
|
EIDRM = 43 /* Identifier removed */,
|
||||||
ChRng = 44 /* Channel number out of range */,
|
ECHRNG = 44 /* Channel number out of range */,
|
||||||
L2NSync = 45 /* Level 2 not synchronized */,
|
EL2NSYNC = 45 /* Level 2 not synchronized */,
|
||||||
L3Hlt = 46 /* Level 3 halted */,
|
EL3HLT = 46 /* Level 3 halted */,
|
||||||
L3Rst = 47 /* Level 3 reset */,
|
EL3RST = 47 /* Level 3 reset */,
|
||||||
LnRng = 48 /* Link number out of range */,
|
ELNRNG = 48 /* Link number out of range */,
|
||||||
UnAtch = 49 /* Protocol driver not attached */,
|
EUNATCH = 49 /* Protocol driver not attached */,
|
||||||
NoCsi = 50 /* No CSI structure available */,
|
ENOCSI = 50 /* No CSI structure available */,
|
||||||
L2Hlt = 51 /* Level 2 halted */,
|
EL2HLT = 51 /* Level 2 halted */,
|
||||||
BadE = 52 /* Invalid exchange */,
|
EBADE = 52 /* Invalid exchange */,
|
||||||
BadR = 53 /* Invalid request descriptor */,
|
EBADR = 53 /* Invalid request descriptor */,
|
||||||
XFull = 54 /* Exchange full */,
|
EXFULL = 54 /* Exchange full */,
|
||||||
NoAno = 55 /* No anode */,
|
ENOANO = 55 /* No anode */,
|
||||||
BadRqC = 56 /* Invalid request code */,
|
EBADRQC = 56 /* Invalid request code */,
|
||||||
BadSlt = 57 /* Invalid slot */,
|
EBADSLT = 57 /* Invalid slot */,
|
||||||
DeadLock = DeadLk,
|
EDEADLOCK = EDEADLK,
|
||||||
BFont = 59 /* Bad font file format */,
|
EBFONT = 59 /* Bad font file format */,
|
||||||
NoStr = 60 /* Device not a stream */,
|
ENOSTR = 60 /* Device not a stream */,
|
||||||
NoData = 61 /* No data available */,
|
ENODATA = 61 /* No data available */,
|
||||||
Time = 62 /* Timer expired */,
|
ETIME = 62 /* Timer expired */,
|
||||||
NoSr = 63 /* Out of streams resources */,
|
ENOSR = 63 /* Out of streams resources */,
|
||||||
NoNet = 64 /* Machine is not on the network */,
|
ENONET = 64 /* Machine is not on the network */,
|
||||||
NoPkg = 65 /* Package not installed */,
|
ENOPKG = 65 /* Package not installed */,
|
||||||
Remote = 66 /* Object is remote */,
|
EREMOTE = 66 /* Object is remote */,
|
||||||
NoLink = 67 /* Link has been severed */,
|
ENOLINK = 67 /* Link has been severed */,
|
||||||
Adv = 68 /* Advertise error */,
|
EADV = 68 /* Advertise error */,
|
||||||
Stmnt = 69 /* Srmount error */,
|
ESRMNT = 69 /* Srmount error */,
|
||||||
Comm = 70 /* Communication error on send */,
|
ECOMM = 70 /* Communication error on send */,
|
||||||
Proto = 71 /* Protocol error */,
|
EPROTO = 71 /* Protocol error */,
|
||||||
Multihop = 72 /* Multihop attempted */,
|
EMULTIHOP = 72 /* Multihop attempted */,
|
||||||
DotDot = 73 /* RFS specific error */,
|
EDOTDOT = 73 /* RFS specific error */,
|
||||||
BadMsg = 74 /* Not a data message */,
|
EBADMSG = 74 /* Not a data message */,
|
||||||
Overflow = 75 /* Value too large for defined data type */,
|
EOVERFLOW = 75 /* Value too large for defined data type */,
|
||||||
NotUniq = 76 /* Name not unique on network */,
|
ENOTUNIQ = 76 /* Name not unique on network */,
|
||||||
BadFd = 77 /* File descriptor in bad state */,
|
EBADFD = 77 /* File descriptor in bad state */,
|
||||||
RemChg = 78 /* Remote address changed */,
|
EREMCHG = 78 /* Remote address changed */,
|
||||||
LibAcc = 79 /* Can not access a needed shared library */,
|
ELIBACC = 79 /* Can not access a needed shared library */,
|
||||||
LibBad = 80 /* Accessing a corrupted shared library */,
|
ELIBBAD = 80 /* Accessing a corrupted shared library */,
|
||||||
LibScn = 81 /* .lib section in a.out corrupted */,
|
ELIBSCN = 81 /* .lib section in a.out corrupted */,
|
||||||
LibMax = 82 /* Attempting to link in too many shared libraries */,
|
ELIBMAX = 82 /* Attempting to link in too many shared libraries */,
|
||||||
LibExec = 83 /* Cannot exec a shared library directly */,
|
ELIBEXEC = 83 /* Cannot exec a shared library directly */,
|
||||||
IlSeq = 84 /* Illegal byte sequence */,
|
EILSEQ = 84 /* Illegal byte sequence */,
|
||||||
Restart = 85 /* Interrupted system call should be restarted */,
|
ERESTART = 85 /* Interrupted system call should be restarted */,
|
||||||
StrPipe = 86 /* Streams pipe error */,
|
ESTRPIPE = 86 /* Streams pipe error */,
|
||||||
Users = 87 /* Too many users */,
|
EUSERS = 87 /* Too many users */,
|
||||||
NotSock = 88 /* Socket operation on non-socket */,
|
ENOTSOCK = 88 /* Socket operation on non-socket */,
|
||||||
DestAddrReq = 89 /* Destination address required */,
|
EDESTADDRREQ = 89 /* Destination address required */,
|
||||||
MsgSize = 90 /* Message too long */,
|
EMSGSIZE = 90 /* Message too long */,
|
||||||
ProtoType = 91 /* Protocol wrong type for socket */,
|
EPROTOTYPE = 91 /* Protocol wrong type for socket */,
|
||||||
NoProtoOpt = 92 /* Protocol not available */,
|
ENOPROTOOPT = 92 /* Protocol not available */,
|
||||||
ProtoNoSupport = 93 /* Protocol not supported */,
|
EPROTONOSUPPORT = 93 /* Protocol not supported */,
|
||||||
SocktNoSupport = 94 /* Socket type not supported */,
|
ESOCKTNOSUPPORT = 94 /* Socket type not supported */,
|
||||||
OpNotSupp = 95 /* Operation not supported on transport endpoint */,
|
EOPNOTSUPP = 95 /* Operation not supported on transport endpoint */,
|
||||||
PfNoSupport = 96 /* Protocol family not supported */,
|
EPFNOSUPPORT = 96 /* Protocol family not supported */,
|
||||||
AfNoSupport = 97 /* Address family not supported by protocol */,
|
EAFNOSUPPORT = 97 /* Address family not supported by protocol */,
|
||||||
AddrInUse = 98 /* Address already in use */,
|
EADDRINUSE = 98 /* Address already in use */,
|
||||||
AddrNotAvail = 99 /* Cannot assign requested address */,
|
EADDRNOTAVAIL = 99 /* Cannot assign requested address */,
|
||||||
NetDown = 100 /* Network is down */,
|
ENETDOWN = 100 /* Network is down */,
|
||||||
NetUnReach = 101 /* Network is unreachable */,
|
ENETUNREACH = 101 /* Network is unreachable */,
|
||||||
NetReset = 102 /* Network dropped connection because of reset */,
|
ENETRESET = 102 /* Network dropped connection because of reset */,
|
||||||
ConnAborted = 103 /* Software caused connection abort */,
|
ECONNABORTED = 103 /* Software caused connection abort */,
|
||||||
ConnReset = 104 /* Connection reset by peer */,
|
ECONNRESET = 104 /* Connection reset by peer */,
|
||||||
NoBufs = 105 /* No buffer space available */,
|
ENOBUFS = 105 /* No buffer space available */,
|
||||||
IsConn = 106 /* Transport endpoint is already connected */,
|
EISCONN = 106 /* Transport endpoint is already connected */,
|
||||||
NotConn = 107 /* Transport endpoint is not connected */,
|
ENOTCONN = 107 /* Transport endpoint is not connected */,
|
||||||
Shutdown = 108 /* Cannot send after transport endpoint shutdown */,
|
ESHUTDOWN = 108 /* Cannot send after transport endpoint shutdown */,
|
||||||
TooManyRefs = 109 /* Too many references: cannot splice */,
|
ETOOMANYREFS = 109 /* Too many references: cannot splice */,
|
||||||
TimedOut = 110 /* Connection timed out */,
|
ETIMEDOUT = 110 /* Connection timed out */,
|
||||||
ConnRefused = 111 /* Connection refused */,
|
ECONNREFUSED = 111 /* Connection refused */,
|
||||||
HostDown = 112 /* Host is down */,
|
EHOSTDOWN = 112 /* Host is down */,
|
||||||
HostUnReach = 113 /* No route to host */,
|
EHOSTUNREACH = 113 /* No route to host */,
|
||||||
Already = 114 /* Operation already in progress */,
|
EALREADY = 114 /* Operation already in progress */,
|
||||||
InProgress = 115 /* Operation now in progress */,
|
EINPROGRESS = 115 /* Operation now in progress */,
|
||||||
Stale = 116 /* Stale file handle */,
|
ESTALE = 116 /* Stale file handle */,
|
||||||
UClean = 117 /* Structure needs cleaning */,
|
EUCLEAN = 117 /* Structure needs cleaning */,
|
||||||
NotNam = 118 /* Not a XENIX named type file */,
|
ENOTNAM = 118 /* Not a XENIX named type file */,
|
||||||
NAvail = 119 /* No XENIX semaphores available */,
|
ENAVAIL = 119 /* No XENIX semaphores available */,
|
||||||
IsNam = 120 /* Is a named type file */,
|
EISNAM = 120 /* Is a named type file */,
|
||||||
RemoteIo = 121 /* Remote I/O error */,
|
EREMOTEIO = 121 /* Remote I/O error */,
|
||||||
DQuot = 122 /* Quota exceeded */,
|
EDQUOT = 122 /* Quota exceeded */,
|
||||||
NoMedium = 123 /* No medium found */,
|
ENOMEDIUM = 123 /* No medium found */,
|
||||||
MediumType = 124 /* Wrong medium type */,
|
EMEDIUMTYPE = 124 /* Wrong medium type */,
|
||||||
Canceled = 125 /* Operation Canceled */,
|
ECANCELED = 125 /* Operation Canceled */,
|
||||||
NoKey = 126 /* Required key not available */,
|
ENOKEY = 126 /* Required key not available */,
|
||||||
KeyExpired = 127 /* Key has expired */,
|
EKEYEXPIRED = 127 /* Key has expired */,
|
||||||
KeyRevoked = 128 /* Key has been revoked */,
|
EKEYREVOKED = 128 /* Key has been revoked */,
|
||||||
KeyRejected = 129 /* Key was rejected by service */,
|
EKEYREJECTED = 129 /* Key was rejected by service */,
|
||||||
|
|
||||||
/* for robust mutexes */
|
/* for robust mutexes */
|
||||||
OwnerDead = 130 /* Owner died */,
|
EOWNERDEAD = 130 /* Owner died */,
|
||||||
NotRecoverable = 131 /* State not recoverable */,
|
ENOTRECOVERABLE = 131 /* State not recoverable */,
|
||||||
|
|
||||||
RfKill = 132 /* Operation not possible due to RF-kill */,
|
ERFKILL = 132 /* Operation not possible due to RF-kill */,
|
||||||
|
|
||||||
HwPoison = 133 /* Memory page has hardware error */
|
EHWPOISON = 133 /* Memory page has hardware error */
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,82 +1,85 @@
|
||||||
namespace Ryujinx.HLE.Utilities
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
|
namespace Ryujinx.HLE.Utilities
|
||||||
{
|
{
|
||||||
internal enum WsaError
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||||
|
enum WsaError
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* All Windows Sockets error constants are biased by WSABASEERR from
|
* All Windows Sockets error constants are biased by WSABASEERR from
|
||||||
* the "normal"
|
* the "normal"
|
||||||
*/
|
*/
|
||||||
BaseError = 10000,
|
WSABASEERR = 10000,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows Sockets definitions of regular Microsoft C error constants
|
* Windows Sockets definitions of regular Microsoft C error constants
|
||||||
*/
|
*/
|
||||||
Interrupted = (BaseError + 4),
|
WSAEINTR = (WSABASEERR + 4),
|
||||||
BadFileHandle = (BaseError + 9),
|
WSAEBADF = (WSABASEERR + 9),
|
||||||
AccessDenied = (BaseError + 13),
|
WSAEACCES = (WSABASEERR + 13),
|
||||||
Fault = (BaseError + 14),
|
WSAEFAULT = (WSABASEERR + 14),
|
||||||
InvalidArgument = (BaseError + 22),
|
WSAEINVAL = (WSABASEERR + 22),
|
||||||
TooManyOpenSockets = (BaseError + 24),
|
WSAEMFILE = (WSABASEERR + 24),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows Sockets definitions of regular Berkeley error constants
|
* Windows Sockets definitions of regular Berkeley error constants
|
||||||
*/
|
*/
|
||||||
WouldBlock = (BaseError + 35),
|
WSAEWOULDBLOCK = (WSABASEERR + 35),
|
||||||
InProgress = (BaseError + 36),
|
WSAEINPROGRESS = (WSABASEERR + 36),
|
||||||
AlreadyInProgress = (BaseError + 37),
|
WSAEALREADY = (WSABASEERR + 37),
|
||||||
NotSocket = (BaseError + 38),
|
WSAENOTSOCK = (WSABASEERR + 38),
|
||||||
DestinationAddressRequired = (BaseError + 39),
|
WSAEDESTADDRREQ = (WSABASEERR + 39),
|
||||||
MessageSize = (BaseError + 40),
|
WSAEMSGSIZE = (WSABASEERR + 40),
|
||||||
ProtocolType = (BaseError + 41),
|
WSAEPROTOTYPE = (WSABASEERR + 41),
|
||||||
ProtocolOption = (BaseError + 42),
|
WSAENOPROTOOPT = (WSABASEERR + 42),
|
||||||
ProtocolNotSupported = (BaseError + 43),
|
WSAEPROTONOSUPPORT = (WSABASEERR + 43),
|
||||||
SocketNotSupported = (BaseError + 44),
|
WSAESOCKTNOSUPPORT = (WSABASEERR + 44),
|
||||||
OperationNotSupported = (BaseError + 45),
|
WSAEOPNOTSUPP = (WSABASEERR + 45),
|
||||||
ProtocolFamilyNotSupported = (BaseError + 46),
|
WSAEPFNOSUPPORT = (WSABASEERR + 46),
|
||||||
AddressFamilyNotSupported = (BaseError + 47),
|
WSAEAFNOSUPPORT = (WSABASEERR + 47),
|
||||||
AddressAlreadyInUse = (BaseError + 48),
|
WSAEADDRINUSE = (WSABASEERR + 48),
|
||||||
AddressNotAvailable = (BaseError + 49),
|
WSAEADDRNOTAVAIL = (WSABASEERR + 49),
|
||||||
NetworkDown = (BaseError + 50),
|
WSAENETDOWN = (WSABASEERR + 50),
|
||||||
NetworkUnreachable = (BaseError + 51),
|
WSAENETUNREACH = (WSABASEERR + 51),
|
||||||
NetworkReset = (BaseError + 52),
|
WSAENETRESET = (WSABASEERR + 52),
|
||||||
ConnectionAborted = (BaseError + 53),
|
WSAECONNABORTED = (WSABASEERR + 53),
|
||||||
ConnectionReset = (BaseError + 54),
|
WSAECONNRESET = (WSABASEERR + 54),
|
||||||
NoBufferSpaceAvailable = (BaseError + 55),
|
WSAENOBUFS = (WSABASEERR + 55),
|
||||||
IsConnected = (BaseError + 56),
|
WSAEISCONN = (WSABASEERR + 56),
|
||||||
NotConnected = (BaseError + 57),
|
WSAENOTCONN = (WSABASEERR + 57),
|
||||||
Shutdown = (BaseError + 58),
|
WSAESHUTDOWN = (WSABASEERR + 58),
|
||||||
TooManyReferences = (BaseError + 59),
|
WSAETOOMANYREFS = (WSABASEERR + 59),
|
||||||
TimedOut = (BaseError + 60),
|
WSAETIMEDOUT = (WSABASEERR + 60),
|
||||||
ConnectionRefused = (BaseError + 61),
|
WSAECONNREFUSED = (WSABASEERR + 61),
|
||||||
Loop = (BaseError + 62),
|
WSAELOOP = (WSABASEERR + 62),
|
||||||
NameTooLong = (BaseError + 63),
|
WSAENAMETOOLONG = (WSABASEERR + 63),
|
||||||
HostDown = (BaseError + 64),
|
WSAEHOSTDOWN = (WSABASEERR + 64),
|
||||||
HostUnreachable = (BaseError + 65),
|
WSAEHOSTUNREACH = (WSABASEERR + 65),
|
||||||
NotEmpty = (BaseError + 66),
|
WSAENOTEMPTY = (WSABASEERR + 66),
|
||||||
ProcessLimit = (BaseError + 67),
|
WSAEPROCLIM = (WSABASEERR + 67),
|
||||||
UserQuota = (BaseError + 68),
|
WSAEUSERS = (WSABASEERR + 68),
|
||||||
DiskQuota = (BaseError + 69),
|
WSAEDQUOT = (WSABASEERR + 69),
|
||||||
Stale = (BaseError + 70),
|
WSAESTALE = (WSABASEERR + 70),
|
||||||
Remote = (BaseError + 71),
|
WSAEREMOTE = (WSABASEERR + 71),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended Windows Sockets error constant definitions
|
* Extended Windows Sockets error constant definitions
|
||||||
*/
|
*/
|
||||||
SystemNotReady = (BaseError + 91),
|
WSASYSNOTREADY = (WSABASEERR + 91),
|
||||||
VersionNotSupported = (BaseError + 92),
|
WSAVERNOTSUPPORTED = (WSABASEERR + 92),
|
||||||
NotInitialized = (BaseError + 93),
|
WSANOTINITIALISED = (WSABASEERR + 93),
|
||||||
Disconnecting = (BaseError + 101),
|
WSAEDISCON = (WSABASEERR + 101),
|
||||||
NoMoreResultsOld = (BaseError + 102),
|
WSAENOMORE = (WSABASEERR + 102),
|
||||||
CancelledOld = (BaseError + 103),
|
WSAECANCELLED = (WSABASEERR + 103),
|
||||||
InvalidProcedureCallTable = (BaseError + 104),
|
WSAEINVALIDPROCTABLE = (WSABASEERR + 104),
|
||||||
InvalidProvider = (BaseError + 105),
|
WSAEINVALIDPROVIDER = (WSABASEERR + 105),
|
||||||
ProviderFailedInit = (BaseError + 106),
|
WSAEPROVIDERFAILEDINIT = (WSABASEERR + 106),
|
||||||
SysCallFailure = (BaseError + 107),
|
WSASYSCALLFAILURE = (WSABASEERR + 107),
|
||||||
ServiceNotFound = (BaseError + 108),
|
WSASERVICE_NOT_FOUND = (WSABASEERR + 108),
|
||||||
TypeNotFound = (BaseError + 109),
|
WSATYPE_NOT_FOUND = (WSABASEERR + 109),
|
||||||
NoMoreResults = (BaseError + 110),
|
WSA_E_NO_MORE = (WSABASEERR + 110),
|
||||||
Cancelled = (BaseError + 111),
|
WSA_E_CANCELLED = (WSABASEERR + 111),
|
||||||
Refused = (BaseError + 112),
|
WSAEREFUSED = (WSABASEERR + 112),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Error return codes from gethostbyname() and gethostbyaddr()
|
* Error return codes from gethostbyname() and gethostbyaddr()
|
||||||
|
@ -90,42 +93,42 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Authoritative Answer: Host not found */
|
/* Authoritative Answer: Host not found */
|
||||||
HostNotFound = (BaseError + 1001),
|
WSAHOST_NOT_FOUND = (WSABASEERR + 1001),
|
||||||
|
|
||||||
/* Non-Authoritative: Host not found, or SERVERFAIL */
|
/* Non-Authoritative: Host not found, or SERVERFAIL */
|
||||||
TryAgain = (BaseError + 1002),
|
WSATRY_AGAIN = (WSABASEERR + 1002),
|
||||||
|
|
||||||
/* Non-recoverable errors, FORMERR, REFUSED, NOTIMP */
|
/* Non-recoverable errors, FORMERR, REFUSED, NOTIMP */
|
||||||
NoRecovery = (BaseError + 1003),
|
WSANO_RECOVERY = (WSABASEERR + 1003),
|
||||||
|
|
||||||
/* Valid name, no data record of requested type */
|
/* Valid name, no data record of requested type */
|
||||||
NoData = (BaseError + 1004),
|
WSANO_DATA = (WSABASEERR + 1004),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define QOS related error return codes
|
* Define QOS related error return codes
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
QosReceivers = (BaseError + 1005),
|
WSA_QOS_RECEIVERS = (WSABASEERR + 1005),
|
||||||
/* at least one Reserve has arrived */
|
/* at least one Reserve has arrived */
|
||||||
QosSenders = (BaseError + 1006),
|
WSA_QOS_SENDERS = (WSABASEERR + 1006),
|
||||||
/* at least one Path has arrived */
|
/* at least one Path has arrived */
|
||||||
QosNoSenders = (BaseError + 1007),
|
WSA_QOS_NO_SENDERS = (WSABASEERR + 1007),
|
||||||
/* there are no senders */
|
/* there are no senders */
|
||||||
QosNoReceivers = (BaseError + 1008),
|
WSA_QOS_NO_RECEIVERS = (WSABASEERR + 1008),
|
||||||
/* there are no receivers */
|
/* there are no receivers */
|
||||||
QosRequestConfirmed = (BaseError + 1009),
|
WSA_QOS_REQUEST_CONFIRMED = (WSABASEERR + 1009),
|
||||||
/* Reserve has been confirmed */
|
/* Reserve has been confirmed */
|
||||||
QosAdmissionFailure = (BaseError + 1010),
|
WSA_QOS_ADMISSION_FAILURE = (WSABASEERR + 1010),
|
||||||
/* error due to lack of resources */
|
/* error due to lack of resources */
|
||||||
QosPolicyFailure = (BaseError + 1011),
|
WSA_QOS_POLICY_FAILURE = (WSABASEERR + 1011),
|
||||||
/* rejected for administrative reasons - bad credentials */
|
/* rejected for administrative reasons - bad credentials */
|
||||||
QosBadStyle = (BaseError + 1012),
|
WSA_QOS_BAD_STYLE = (WSABASEERR + 1012),
|
||||||
/* unknown or conflicting style */
|
/* unknown or conflicting style */
|
||||||
QosBadObject = (BaseError + 1013),
|
WSA_QOS_BAD_OBJECT = (WSABASEERR + 1013),
|
||||||
/* problem with some part of the filterspec or providerspecific
|
/* problem with some part of the filterspec or providerspecific
|
||||||
* buffer in general */
|
* buffer in general */
|
||||||
QosTrafficCtrlError = (BaseError + 1014),
|
WSA_QOS_TRAFFIC_CTRL_ERROR = (WSABASEERR + 1014),
|
||||||
/* problem with some part of the flowspec */
|
/* problem with some part of the flowspec */
|
||||||
QosGenericError = (BaseError + 1015)
|
WSA_QOS_GENERIC_ERROR = (WSABASEERR + 1015)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue