mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
IOS: Remove IOS prefix on a few structs/enums
Now that IOS code is namespaced, we don't need the prefix anymore.
This commit is contained in:
@@ -33,7 +33,7 @@ void DI::DoState(PointerWrap& p)
|
||||
p.Do(m_commands_to_execute);
|
||||
}
|
||||
|
||||
IPCCommandResult DI::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult DI::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
// DI IOCtls are handled in a special way by Dolphin
|
||||
// compared to other IOS functions.
|
||||
@@ -52,7 +52,7 @@ IPCCommandResult DI::IOCtl(const IOSIOCtlRequest& request)
|
||||
return GetNoReply();
|
||||
}
|
||||
|
||||
void DI::StartIOCtl(const IOSIOCtlRequest& request)
|
||||
void DI::StartIOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
const u32 command_0 = Memory::Read_U32(request.buffer_in);
|
||||
const u32 command_1 = Memory::Read_U32(request.buffer_in + 4);
|
||||
@@ -75,18 +75,18 @@ void DI::FinishIOCtl(DVDInterface::DIInterruptType interrupt_type)
|
||||
// This command has been executed, so it's removed from the queue
|
||||
u32 command_address = m_commands_to_execute.front();
|
||||
m_commands_to_execute.pop_front();
|
||||
EnqueueReply(IOSIOCtlRequest{command_address}, interrupt_type);
|
||||
EnqueueReply(IOCtlRequest{command_address}, interrupt_type);
|
||||
|
||||
// DVDInterface is now ready to execute another command,
|
||||
// so we start executing a command from the queue if there is one
|
||||
if (!m_commands_to_execute.empty())
|
||||
{
|
||||
IOSIOCtlRequest next_request{m_commands_to_execute.front()};
|
||||
IOCtlRequest next_request{m_commands_to_execute.front()};
|
||||
StartIOCtl(next_request);
|
||||
}
|
||||
}
|
||||
|
||||
IPCCommandResult DI::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult DI::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
for (const auto& vector : request.io_vectors)
|
||||
Memory::Memset(vector.address, 0, vector.size);
|
||||
|
||||
@@ -31,13 +31,13 @@ public:
|
||||
|
||||
void DoState(PointerWrap& p) override;
|
||||
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
void FinishIOCtl(DVDInterface::DIInterruptType interrupt_type);
|
||||
|
||||
private:
|
||||
void StartIOCtl(const IOSIOCtlRequest& request);
|
||||
void StartIOCtl(const IOCtlRequest& request);
|
||||
|
||||
std::deque<u32> m_commands_to_execute;
|
||||
};
|
||||
|
||||
@@ -16,31 +16,31 @@ namespace IOS
|
||||
{
|
||||
namespace HLE
|
||||
{
|
||||
IOSRequest::IOSRequest(const u32 address_) : address(address_)
|
||||
Request::Request(const u32 address_) : address(address_)
|
||||
{
|
||||
command = static_cast<IPCCommandType>(Memory::Read_U32(address));
|
||||
fd = Memory::Read_U32(address + 8);
|
||||
}
|
||||
|
||||
IOSOpenRequest::IOSOpenRequest(const u32 address_) : IOSRequest(address_)
|
||||
OpenRequest::OpenRequest(const u32 address_) : Request(address_)
|
||||
{
|
||||
path = Memory::GetString(Memory::Read_U32(address + 0xc));
|
||||
flags = static_cast<IOSOpenMode>(Memory::Read_U32(address + 0x10));
|
||||
flags = static_cast<OpenMode>(Memory::Read_U32(address + 0x10));
|
||||
}
|
||||
|
||||
IOSReadWriteRequest::IOSReadWriteRequest(const u32 address_) : IOSRequest(address_)
|
||||
ReadWriteRequest::ReadWriteRequest(const u32 address_) : Request(address_)
|
||||
{
|
||||
buffer = Memory::Read_U32(address + 0xc);
|
||||
size = Memory::Read_U32(address + 0x10);
|
||||
}
|
||||
|
||||
IOSSeekRequest::IOSSeekRequest(const u32 address_) : IOSRequest(address_)
|
||||
SeekRequest::SeekRequest(const u32 address_) : Request(address_)
|
||||
{
|
||||
offset = Memory::Read_U32(address + 0xc);
|
||||
mode = static_cast<SeekMode>(Memory::Read_U32(address + 0x10));
|
||||
}
|
||||
|
||||
IOSIOCtlRequest::IOSIOCtlRequest(const u32 address_) : IOSRequest(address_)
|
||||
IOCtlRequest::IOCtlRequest(const u32 address_) : Request(address_)
|
||||
{
|
||||
request = Memory::Read_U32(address + 0x0c);
|
||||
buffer_in = Memory::Read_U32(address + 0x10);
|
||||
@@ -49,7 +49,7 @@ IOSIOCtlRequest::IOSIOCtlRequest(const u32 address_) : IOSRequest(address_)
|
||||
buffer_out_size = Memory::Read_U32(address + 0x1c);
|
||||
}
|
||||
|
||||
IOSIOCtlVRequest::IOSIOCtlVRequest(const u32 address_) : IOSRequest(address_)
|
||||
IOCtlVRequest::IOCtlVRequest(const u32 address_) : Request(address_)
|
||||
{
|
||||
request = Memory::Read_U32(address + 0x0c);
|
||||
const u32 in_number = Memory::Read_U32(address + 0x10);
|
||||
@@ -70,21 +70,21 @@ IOSIOCtlVRequest::IOSIOCtlVRequest(const u32 address_) : IOSRequest(address_)
|
||||
}
|
||||
}
|
||||
|
||||
bool IOSIOCtlVRequest::HasInputVectorWithAddress(const u32 vector_address) const
|
||||
bool IOCtlVRequest::HasInputVectorWithAddress(const u32 vector_address) const
|
||||
{
|
||||
return std::any_of(in_vectors.begin(), in_vectors.end(),
|
||||
[&](const auto& in_vector) { return in_vector.address == vector_address; });
|
||||
}
|
||||
|
||||
void IOSIOCtlRequest::Log(const std::string& device_name, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS verbosity) const
|
||||
void IOCtlRequest::Log(const std::string& device_name, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS verbosity) const
|
||||
{
|
||||
GENERIC_LOG(type, verbosity, "%s (fd %u) - IOCtl 0x%x (in_size=0x%x, out_size=0x%x)",
|
||||
device_name.c_str(), fd, request, buffer_in_size, buffer_out_size);
|
||||
}
|
||||
|
||||
void IOSIOCtlRequest::Dump(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
void IOCtlRequest::Dump(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
{
|
||||
Log("===== " + description, type, level);
|
||||
GENERIC_LOG(type, level, "In buffer\n%s",
|
||||
@@ -93,14 +93,14 @@ void IOSIOCtlRequest::Dump(const std::string& description, LogTypes::LOG_TYPE ty
|
||||
HexDump(Memory::GetPointer(buffer_out), buffer_out_size).c_str());
|
||||
}
|
||||
|
||||
void IOSIOCtlRequest::DumpUnknown(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
void IOCtlRequest::DumpUnknown(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
{
|
||||
Dump("Unknown IOCtl - " + description, type, level);
|
||||
}
|
||||
|
||||
void IOSIOCtlVRequest::Dump(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
void IOCtlVRequest::Dump(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
{
|
||||
GENERIC_LOG(type, level, "===== %s (fd %u) - IOCtlV 0x%x (%zu in, %zu io)", description.c_str(),
|
||||
fd, request, in_vectors.size(), io_vectors.size());
|
||||
@@ -115,8 +115,8 @@ void IOSIOCtlVRequest::Dump(const std::string& description, LogTypes::LOG_TYPE t
|
||||
GENERIC_LOG(type, level, "io[%zu] (size=0x%x)", i++, vector.size);
|
||||
}
|
||||
|
||||
void IOSIOCtlVRequest::DumpUnknown(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
void IOCtlVRequest::DumpUnknown(const std::string& description, LogTypes::LOG_TYPE type,
|
||||
LogTypes::LOG_LEVELS level) const
|
||||
{
|
||||
Dump("Unknown IOCtlV - " + description, type, level);
|
||||
}
|
||||
@@ -142,7 +142,7 @@ void Device::DoStateShared(PointerWrap& p)
|
||||
p.Do(m_is_active);
|
||||
}
|
||||
|
||||
IOSReturnCode Device::Open(const IOSOpenRequest& request)
|
||||
ReturnCode Device::Open(const OpenRequest& request)
|
||||
{
|
||||
m_is_active = true;
|
||||
return IPC_SUCCESS;
|
||||
@@ -153,7 +153,7 @@ void Device::Close()
|
||||
m_is_active = false;
|
||||
}
|
||||
|
||||
IPCCommandResult Device::Unsupported(const IOSRequest& request)
|
||||
IPCCommandResult Device::Unsupported(const Request& request)
|
||||
{
|
||||
static std::map<IPCCommandType, std::string> names = {{{IPC_CMD_READ, "Read"},
|
||||
{IPC_CMD_WRITE, "Write"},
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace IOS
|
||||
{
|
||||
namespace HLE
|
||||
{
|
||||
enum IOSReturnCode : s32
|
||||
enum ReturnCode : s32
|
||||
{
|
||||
IPC_SUCCESS = 0, // Success
|
||||
IPC_EACCES = -1, // Permission denied
|
||||
@@ -44,37 +44,37 @@ enum IOSReturnCode : s32
|
||||
IPC_EESEXHAUSTED = -1016, // Max of 2 ES handles exceeded
|
||||
};
|
||||
|
||||
struct IOSRequest
|
||||
struct Request
|
||||
{
|
||||
u32 address = 0;
|
||||
IPCCommandType command = IPC_CMD_OPEN;
|
||||
u32 fd = 0;
|
||||
explicit IOSRequest(u32 address);
|
||||
virtual ~IOSRequest() = default;
|
||||
explicit Request(u32 address);
|
||||
virtual ~Request() = default;
|
||||
};
|
||||
|
||||
enum IOSOpenMode : s32
|
||||
enum OpenMode : s32
|
||||
{
|
||||
IOS_OPEN_READ = 1,
|
||||
IOS_OPEN_WRITE = 2,
|
||||
IOS_OPEN_RW = (IOS_OPEN_READ | IOS_OPEN_WRITE)
|
||||
};
|
||||
|
||||
struct IOSOpenRequest final : IOSRequest
|
||||
struct OpenRequest final : Request
|
||||
{
|
||||
std::string path;
|
||||
IOSOpenMode flags = IOS_OPEN_READ;
|
||||
explicit IOSOpenRequest(u32 address);
|
||||
OpenMode flags = IOS_OPEN_READ;
|
||||
explicit OpenRequest(u32 address);
|
||||
};
|
||||
|
||||
struct IOSReadWriteRequest final : IOSRequest
|
||||
struct ReadWriteRequest final : Request
|
||||
{
|
||||
u32 buffer = 0;
|
||||
u32 size = 0;
|
||||
explicit IOSReadWriteRequest(u32 address);
|
||||
explicit ReadWriteRequest(u32 address);
|
||||
};
|
||||
|
||||
struct IOSSeekRequest final : IOSRequest
|
||||
struct SeekRequest final : Request
|
||||
{
|
||||
enum SeekMode
|
||||
{
|
||||
@@ -84,10 +84,10 @@ struct IOSSeekRequest final : IOSRequest
|
||||
};
|
||||
u32 offset = 0;
|
||||
SeekMode mode = IOS_SEEK_SET;
|
||||
explicit IOSSeekRequest(u32 address);
|
||||
explicit SeekRequest(u32 address);
|
||||
};
|
||||
|
||||
struct IOSIOCtlRequest final : IOSRequest
|
||||
struct IOCtlRequest final : Request
|
||||
{
|
||||
u32 request = 0;
|
||||
u32 buffer_in = 0;
|
||||
@@ -95,7 +95,7 @@ struct IOSIOCtlRequest final : IOSRequest
|
||||
// Contrary to the name, the output buffer can also be used for input.
|
||||
u32 buffer_out = 0;
|
||||
u32 buffer_out_size = 0;
|
||||
explicit IOSIOCtlRequest(u32 address);
|
||||
explicit IOCtlRequest(u32 address);
|
||||
void Log(const std::string& description, LogTypes::LOG_TYPE type = LogTypes::IOS,
|
||||
LogTypes::LOG_LEVELS level = LogTypes::LINFO) const;
|
||||
void Dump(const std::string& description, LogTypes::LOG_TYPE type = LogTypes::IOS,
|
||||
@@ -104,7 +104,7 @@ struct IOSIOCtlRequest final : IOSRequest
|
||||
LogTypes::LOG_LEVELS level = LogTypes::LERROR) const;
|
||||
};
|
||||
|
||||
struct IOSIOCtlVRequest final : IOSRequest
|
||||
struct IOCtlVRequest final : Request
|
||||
{
|
||||
struct IOVector
|
||||
{
|
||||
@@ -120,7 +120,7 @@ struct IOSIOCtlVRequest final : IOSRequest
|
||||
// merging them into a single std::vector would make using the first out vector more complicated.
|
||||
std::vector<IOVector> in_vectors;
|
||||
std::vector<IOVector> io_vectors;
|
||||
explicit IOSIOCtlVRequest(u32 address);
|
||||
explicit IOCtlVRequest(u32 address);
|
||||
bool HasInputVectorWithAddress(u32 vector_address) const;
|
||||
void Dump(const std::string& description, LogTypes::LOG_TYPE type = LogTypes::IOS,
|
||||
LogTypes::LOG_LEVELS level = LogTypes::LINFO) const;
|
||||
@@ -151,13 +151,13 @@ public:
|
||||
u32 GetDeviceID() const { return m_device_id; }
|
||||
// Replies to Open and Close requests are sent by the IPC request handler (HandleCommand),
|
||||
// not by the devices themselves.
|
||||
virtual IOSReturnCode Open(const IOSOpenRequest& request);
|
||||
virtual ReturnCode Open(const OpenRequest& request);
|
||||
virtual void Close();
|
||||
virtual IPCCommandResult Seek(const IOSSeekRequest& seek) { return Unsupported(seek); }
|
||||
virtual IPCCommandResult Read(const IOSReadWriteRequest& read) { return Unsupported(read); }
|
||||
virtual IPCCommandResult Write(const IOSReadWriteRequest& write) { return Unsupported(write); }
|
||||
virtual IPCCommandResult IOCtl(const IOSIOCtlRequest& ioctl) { return Unsupported(ioctl); }
|
||||
virtual IPCCommandResult IOCtlV(const IOSIOCtlVRequest& ioctlv) { return Unsupported(ioctlv); }
|
||||
virtual IPCCommandResult Seek(const SeekRequest& seek) { return Unsupported(seek); }
|
||||
virtual IPCCommandResult Read(const ReadWriteRequest& read) { return Unsupported(read); }
|
||||
virtual IPCCommandResult Write(const ReadWriteRequest& write) { return Unsupported(write); }
|
||||
virtual IPCCommandResult IOCtl(const IOCtlRequest& ioctl) { return Unsupported(ioctl); }
|
||||
virtual IPCCommandResult IOCtlV(const IOCtlVRequest& ioctlv) { return Unsupported(ioctlv); }
|
||||
virtual void Update() {}
|
||||
virtual DeviceType GetDeviceType() const { return m_device_type; }
|
||||
virtual bool IsOpened() const { return m_is_active; }
|
||||
@@ -172,7 +172,7 @@ protected:
|
||||
bool m_is_active = false;
|
||||
|
||||
private:
|
||||
IPCCommandResult Unsupported(const IOSRequest& request);
|
||||
IPCCommandResult Unsupported(const Request& request);
|
||||
};
|
||||
} // namespace Device
|
||||
} // namespace HLE
|
||||
|
||||
@@ -15,7 +15,7 @@ Stub::Stub(u32 device_id, const std::string& device_name) : Device(device_id, de
|
||||
{
|
||||
}
|
||||
|
||||
IOSReturnCode Stub::Open(const IOSOpenRequest& request)
|
||||
ReturnCode Stub::Open(const OpenRequest& request)
|
||||
{
|
||||
WARN_LOG(IOS, "%s faking Open()", m_name.c_str());
|
||||
m_is_active = true;
|
||||
@@ -28,13 +28,13 @@ void Stub::Close()
|
||||
m_is_active = false;
|
||||
}
|
||||
|
||||
IPCCommandResult Stub::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult Stub::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
WARN_LOG(IOS, "%s faking IOCtl()", m_name.c_str());
|
||||
return GetDefaultReply(IPC_SUCCESS);
|
||||
}
|
||||
|
||||
IPCCommandResult Stub::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult Stub::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
WARN_LOG(IOS, "%s faking IOCtlV()", m_name.c_str());
|
||||
return GetDefaultReply(IPC_SUCCESS);
|
||||
|
||||
@@ -21,10 +21,10 @@ class Stub final : public Device
|
||||
public:
|
||||
Stub(u32 device_id, const std::string& device_name);
|
||||
|
||||
IOSReturnCode Open(const IOSOpenRequest& request) override;
|
||||
ReturnCode Open(const OpenRequest& request) override;
|
||||
void Close() override;
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
};
|
||||
} // namespace Device
|
||||
} // namespace HLE
|
||||
|
||||
@@ -195,7 +195,7 @@ void ES::DoState(PointerWrap& p)
|
||||
}
|
||||
}
|
||||
|
||||
IOSReturnCode ES::Open(const IOSOpenRequest& request)
|
||||
ReturnCode ES::Open(const OpenRequest& request)
|
||||
{
|
||||
OpenInternal();
|
||||
|
||||
@@ -246,7 +246,7 @@ u32 ES::OpenTitleContent(u32 CFD, u64 TitleID, u16 Index)
|
||||
return CFD;
|
||||
}
|
||||
|
||||
IPCCommandResult ES::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult ES::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
DEBUG_LOG(IOS_ES, "%s (0x%x)", GetDeviceName().c_str(), request.request);
|
||||
// Clear the IO buffers. Note that this is unsafe for other ioctlvs.
|
||||
|
||||
@@ -42,9 +42,9 @@ public:
|
||||
|
||||
void DoState(PointerWrap& p) override;
|
||||
|
||||
IOSReturnCode Open(const IOSOpenRequest& request) override;
|
||||
ReturnCode Open(const OpenRequest& request) override;
|
||||
void Close() override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
static u32 ES_DIVerify(const std::vector<u8>& tmd);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ IPCCommandResult FS::GetFSReply(const s32 return_value) const
|
||||
return {return_value, true, SystemTimers::GetTicksPerSecond() / 500};
|
||||
}
|
||||
|
||||
IOSReturnCode FS::Open(const IOSOpenRequest& request)
|
||||
ReturnCode FS::Open(const OpenRequest& request)
|
||||
{
|
||||
// clear tmp folder
|
||||
{
|
||||
@@ -72,7 +72,7 @@ static u64 ComputeTotalFileSize(const File::FSTEntry& parentEntry)
|
||||
return sizeOfFiles;
|
||||
}
|
||||
|
||||
IPCCommandResult FS::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult FS::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
s32 return_value = IPC_SUCCESS;
|
||||
switch (request.request)
|
||||
@@ -232,14 +232,14 @@ IPCCommandResult FS::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
return GetFSReply(return_value);
|
||||
}
|
||||
|
||||
IPCCommandResult FS::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult FS::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
Memory::Memset(request.buffer_out, 0, request.buffer_out_size);
|
||||
const s32 return_value = ExecuteCommand(request);
|
||||
return GetFSReply(return_value);
|
||||
}
|
||||
|
||||
s32 FS::ExecuteCommand(const IOSIOCtlRequest& request)
|
||||
s32 FS::ExecuteCommand(const IOCtlRequest& request)
|
||||
{
|
||||
switch (request.request)
|
||||
{
|
||||
|
||||
@@ -36,9 +36,9 @@ public:
|
||||
|
||||
void DoState(PointerWrap& p) override;
|
||||
|
||||
IOSReturnCode Open(const IOSOpenRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
ReturnCode Open(const OpenRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
private:
|
||||
enum
|
||||
@@ -56,7 +56,7 @@ private:
|
||||
};
|
||||
|
||||
IPCCommandResult GetFSReply(s32 return_value) const;
|
||||
s32 ExecuteCommand(const IOSIOCtlRequest& request);
|
||||
s32 ExecuteCommand(const IOCtlRequest& request);
|
||||
};
|
||||
} // namespace Device
|
||||
} // namespace HLE
|
||||
|
||||
@@ -88,7 +88,7 @@ void FileIO::Close()
|
||||
m_is_active = false;
|
||||
}
|
||||
|
||||
IOSReturnCode FileIO::Open(const IOSOpenRequest& request)
|
||||
ReturnCode FileIO::Open(const OpenRequest& request)
|
||||
{
|
||||
m_Mode = request.flags;
|
||||
|
||||
@@ -156,7 +156,7 @@ void FileIO::OpenFile()
|
||||
}
|
||||
}
|
||||
|
||||
IPCCommandResult FileIO::Seek(const IOSSeekRequest& request)
|
||||
IPCCommandResult FileIO::Seek(const SeekRequest& request)
|
||||
{
|
||||
u32 return_value = FS_EINVAL;
|
||||
|
||||
@@ -168,7 +168,7 @@ IPCCommandResult FileIO::Seek(const IOSSeekRequest& request)
|
||||
|
||||
switch (request.mode)
|
||||
{
|
||||
case IOSSeekRequest::IOS_SEEK_SET:
|
||||
case SeekRequest::IOS_SEEK_SET:
|
||||
{
|
||||
if (request.offset <= file_size)
|
||||
{
|
||||
@@ -178,7 +178,7 @@ IPCCommandResult FileIO::Seek(const IOSSeekRequest& request)
|
||||
break;
|
||||
}
|
||||
|
||||
case IOSSeekRequest::IOS_SEEK_CUR:
|
||||
case SeekRequest::IOS_SEEK_CUR:
|
||||
{
|
||||
const u32 wanted_pos = request.offset + m_SeekPos;
|
||||
if (wanted_pos <= file_size)
|
||||
@@ -189,7 +189,7 @@ IPCCommandResult FileIO::Seek(const IOSSeekRequest& request)
|
||||
break;
|
||||
}
|
||||
|
||||
case IOSSeekRequest::IOS_SEEK_END:
|
||||
case SeekRequest::IOS_SEEK_END:
|
||||
{
|
||||
const u32 wanted_pos = request.offset + file_size;
|
||||
if (wanted_pos <= file_size)
|
||||
@@ -215,7 +215,7 @@ IPCCommandResult FileIO::Seek(const IOSSeekRequest& request)
|
||||
return GetDefaultReply(return_value);
|
||||
}
|
||||
|
||||
IPCCommandResult FileIO::Read(const IOSReadWriteRequest& request)
|
||||
IPCCommandResult FileIO::Read(const ReadWriteRequest& request)
|
||||
{
|
||||
s32 return_value = FS_EACCESS;
|
||||
if (m_file->IsOpen())
|
||||
@@ -253,7 +253,7 @@ IPCCommandResult FileIO::Read(const IOSReadWriteRequest& request)
|
||||
return GetDefaultReply(return_value);
|
||||
}
|
||||
|
||||
IPCCommandResult FileIO::Write(const IOSReadWriteRequest& request)
|
||||
IPCCommandResult FileIO::Write(const ReadWriteRequest& request)
|
||||
{
|
||||
s32 return_value = FS_EACCESS;
|
||||
if (m_file->IsOpen())
|
||||
@@ -288,7 +288,7 @@ IPCCommandResult FileIO::Write(const IOSReadWriteRequest& request)
|
||||
return GetDefaultReply(return_value);
|
||||
}
|
||||
|
||||
IPCCommandResult FileIO::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult FileIO::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
DEBUG_LOG(IOS_FILEIO, "FileIO: IOCtl (Device=%s)", m_name.c_str());
|
||||
s32 return_value = IPC_SUCCESS;
|
||||
|
||||
@@ -33,11 +33,11 @@ public:
|
||||
FileIO(u32 device_id, const std::string& device_name);
|
||||
|
||||
void Close() override;
|
||||
IOSReturnCode Open(const IOSOpenRequest& request) override;
|
||||
IPCCommandResult Seek(const IOSSeekRequest& request) override;
|
||||
IPCCommandResult Read(const IOSReadWriteRequest& request) override;
|
||||
IPCCommandResult Write(const IOSReadWriteRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
ReturnCode Open(const OpenRequest& request) override;
|
||||
IPCCommandResult Seek(const SeekRequest& request) override;
|
||||
IPCCommandResult Read(const ReadWriteRequest& request) override;
|
||||
IPCCommandResult Write(const ReadWriteRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
void PrepareForState(PointerWrap::Mode mode) override;
|
||||
void DoState(PointerWrap& p) override;
|
||||
|
||||
|
||||
@@ -349,7 +349,7 @@ static std::shared_ptr<Device::Device> GetUnusedESDevice()
|
||||
}
|
||||
|
||||
// Returns the FD for the newly opened device (on success) or an error code.
|
||||
static s32 OpenDevice(const IOSOpenRequest& request)
|
||||
static s32 OpenDevice(const OpenRequest& request)
|
||||
{
|
||||
const s32 new_fd = GetFreeDeviceID();
|
||||
INFO_LOG(IOS, "Opening %s (mode %d, fd %d)", request.path.c_str(), request.flags, new_fd);
|
||||
@@ -381,18 +381,18 @@ static s32 OpenDevice(const IOSOpenRequest& request)
|
||||
return IPC_ENOENT;
|
||||
}
|
||||
|
||||
const IOSReturnCode code = device->Open(request);
|
||||
const ReturnCode code = device->Open(request);
|
||||
if (code < IPC_SUCCESS)
|
||||
return code;
|
||||
s_fdmap[new_fd] = device;
|
||||
return new_fd;
|
||||
}
|
||||
|
||||
static IPCCommandResult HandleCommand(const IOSRequest& request)
|
||||
static IPCCommandResult HandleCommand(const Request& request)
|
||||
{
|
||||
if (request.command == IPC_CMD_OPEN)
|
||||
{
|
||||
IOSOpenRequest open_request{request.address};
|
||||
OpenRequest open_request{request.address};
|
||||
const s32 new_fd = OpenDevice(open_request);
|
||||
return Device::Device::GetDefaultReply(new_fd);
|
||||
}
|
||||
@@ -408,15 +408,15 @@ static IPCCommandResult HandleCommand(const IOSRequest& request)
|
||||
device->Close();
|
||||
return Device::Device::GetDefaultReply(IPC_SUCCESS);
|
||||
case IPC_CMD_READ:
|
||||
return device->Read(IOSReadWriteRequest{request.address});
|
||||
return device->Read(ReadWriteRequest{request.address});
|
||||
case IPC_CMD_WRITE:
|
||||
return device->Write(IOSReadWriteRequest{request.address});
|
||||
return device->Write(ReadWriteRequest{request.address});
|
||||
case IPC_CMD_SEEK:
|
||||
return device->Seek(IOSSeekRequest{request.address});
|
||||
return device->Seek(SeekRequest{request.address});
|
||||
case IPC_CMD_IOCTL:
|
||||
return device->IOCtl(IOSIOCtlRequest{request.address});
|
||||
return device->IOCtl(IOCtlRequest{request.address});
|
||||
case IPC_CMD_IOCTLV:
|
||||
return device->IOCtlV(IOSIOCtlVRequest{request.address});
|
||||
return device->IOCtlV(IOCtlVRequest{request.address});
|
||||
default:
|
||||
_assert_msg_(IOS, false, "Unexpected command: %x", request.command);
|
||||
return Device::Device::GetDefaultReply(IPC_EINVAL);
|
||||
@@ -425,7 +425,7 @@ static IPCCommandResult HandleCommand(const IOSRequest& request)
|
||||
|
||||
void ExecuteCommand(const u32 address)
|
||||
{
|
||||
IOSRequest request{address};
|
||||
Request request{address};
|
||||
IPCCommandResult result = HandleCommand(request);
|
||||
|
||||
// Ensure replies happen in order
|
||||
@@ -445,7 +445,7 @@ void EnqueueRequest(u32 address)
|
||||
}
|
||||
|
||||
// Called to send a reply to an IOS syscall
|
||||
void EnqueueReply(const IOSRequest& request, const s32 return_value, int cycles_in_future,
|
||||
void EnqueueReply(const Request& request, const s32 return_value, int cycles_in_future,
|
||||
CoreTiming::FromThread from)
|
||||
{
|
||||
Memory::Write_U32(static_cast<u32>(return_value), request.address + 4);
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Device
|
||||
class Device;
|
||||
}
|
||||
|
||||
struct IOSRequest;
|
||||
struct Request;
|
||||
|
||||
struct IPCCommandResult
|
||||
{
|
||||
@@ -78,7 +78,7 @@ void UpdateDevices();
|
||||
void ExecuteCommand(u32 address);
|
||||
|
||||
void EnqueueRequest(u32 address);
|
||||
void EnqueueReply(const IOSRequest& request, s32 return_value, int cycles_in_future = 0,
|
||||
void EnqueueReply(const Request& request, s32 return_value, int cycles_in_future = 0,
|
||||
CoreTiming::FromThread from = CoreTiming::FromThread::CPU);
|
||||
void EnqueueCommandAcknowledgement(u32 address, int cycles_in_future = 0);
|
||||
} // namespace HLE
|
||||
|
||||
@@ -77,7 +77,7 @@ NetKDRequest::~NetKDRequest()
|
||||
WiiSockMan::GetInstance().Clean();
|
||||
}
|
||||
|
||||
IPCCommandResult NetKDRequest::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult NetKDRequest::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
s32 return_value = 0;
|
||||
switch (request.request)
|
||||
@@ -326,7 +326,7 @@ NetNCDManage::NetNCDManage(u32 device_id, const std::string& device_name)
|
||||
{
|
||||
}
|
||||
|
||||
IPCCommandResult NetNCDManage::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult NetNCDManage::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
s32 return_value = IPC_SUCCESS;
|
||||
u32 common_result = 0;
|
||||
@@ -402,7 +402,7 @@ NetWDCommand::NetWDCommand(u32 device_id, const std::string& device_name)
|
||||
// This is just for debugging / playing around.
|
||||
// There really is no reason to implement wd unless we can bend it such that
|
||||
// we can talk to the DS.
|
||||
IPCCommandResult NetWDCommand::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult NetWDCommand::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
s32 return_value = IPC_SUCCESS;
|
||||
|
||||
@@ -539,7 +539,7 @@ static unsigned int opt_level_mapping[][2] = {{SOL_SOCKET, 0xFFFF}};
|
||||
static unsigned int opt_name_mapping[][2] = {
|
||||
{SO_REUSEADDR, 0x4}, {SO_SNDBUF, 0x1001}, {SO_RCVBUF, 0x1002}, {SO_ERROR, 0x1009}};
|
||||
|
||||
IPCCommandResult NetIPTop::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult NetIPTop::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
if (Core::g_want_determinism)
|
||||
{
|
||||
@@ -1052,7 +1052,7 @@ IPCCommandResult NetIPTop::IOCtl(const IOSIOCtlRequest& request)
|
||||
return GetDefaultReply(return_value);
|
||||
}
|
||||
|
||||
IPCCommandResult NetIPTop::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult NetIPTop::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
s32 return_value = 0;
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
|
||||
virtual ~NetKDRequest();
|
||||
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
|
||||
private:
|
||||
enum
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
}
|
||||
|
||||
virtual ~NetKDTime() {}
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override
|
||||
{
|
||||
s32 result = 0;
|
||||
u32 common_result = 0;
|
||||
@@ -209,8 +209,8 @@ public:
|
||||
|
||||
virtual ~NetIPTop();
|
||||
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
void Update() override;
|
||||
|
||||
@@ -227,7 +227,7 @@ class NetNCDManage : public Device
|
||||
public:
|
||||
NetNCDManage(u32 device_id, const std::string& device_name);
|
||||
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
private:
|
||||
enum
|
||||
@@ -251,7 +251,7 @@ class NetWDCommand : public Device
|
||||
public:
|
||||
NetWDCommand(u32 device_id, const std::string& device_name);
|
||||
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
private:
|
||||
enum
|
||||
|
||||
@@ -79,13 +79,13 @@ int NetSSL::GetSSLFreeID() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
IPCCommandResult NetSSL::IOCtl(const IOSIOCtlRequest& request)
|
||||
IPCCommandResult NetSSL::IOCtl(const IOCtlRequest& request)
|
||||
{
|
||||
request.Log(GetDeviceName(), LogTypes::IOS_SSL, LogTypes::LINFO);
|
||||
return GetDefaultReply(IPC_SUCCESS);
|
||||
}
|
||||
|
||||
IPCCommandResult NetSSL::IOCtlV(const IOSIOCtlVRequest& request)
|
||||
IPCCommandResult NetSSL::IOCtlV(const IOCtlVRequest& request)
|
||||
{
|
||||
u32 BufferIn = 0, BufferIn2 = 0, BufferIn3 = 0;
|
||||
u32 BufferInSize = 0, BufferInSize2 = 0, BufferInSize3 = 0;
|
||||
|
||||
@@ -94,8 +94,8 @@ public:
|
||||
|
||||
virtual ~NetSSL();
|
||||
|
||||
IPCCommandResult IOCtl(const IOSIOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOSIOCtlVRequest& request) override;
|
||||
IPCCommandResult IOCtl(const IOCtlRequest& request) override;
|
||||
IPCCommandResult IOCtlV(const IOCtlVRequest& request) override;
|
||||
|
||||
int GetSSLFreeID() const;
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ void WiiSocket::Update(bool read, bool write, bool except)
|
||||
IPCCommandType ct = it->request.command;
|
||||
if (!it->is_ssl && ct == IPC_CMD_IOCTL)
|
||||
{
|
||||
IOSIOCtlRequest ioctl{it->request.address};
|
||||
IOCtlRequest ioctl{it->request.address};
|
||||
switch (it->net_type)
|
||||
{
|
||||
case IOCTL_SO_FCNTL:
|
||||
@@ -270,7 +270,7 @@ void WiiSocket::Update(bool read, bool write, bool except)
|
||||
}
|
||||
else if (ct == IPC_CMD_IOCTLV)
|
||||
{
|
||||
IOSIOCtlVRequest ioctlv{it->request.address};
|
||||
IOCtlVRequest ioctlv{it->request.address};
|
||||
u32 BufferIn = 0, BufferIn2 = 0;
|
||||
u32 BufferInSize = 0, BufferInSize2 = 0;
|
||||
u32 BufferOut = 0, BufferOut2 = 0;
|
||||
@@ -582,14 +582,14 @@ void WiiSocket::Update(bool read, bool write, bool except)
|
||||
}
|
||||
}
|
||||
|
||||
void WiiSocket::DoSock(IOSRequest request, NET_IOCTL type)
|
||||
void WiiSocket::DoSock(Request request, NET_IOCTL type)
|
||||
{
|
||||
sockop so = {request, false};
|
||||
so.net_type = type;
|
||||
pending_sockops.push_back(so);
|
||||
}
|
||||
|
||||
void WiiSocket::DoSock(IOSRequest request, SSL_IOCTL type)
|
||||
void WiiSocket::DoSock(Request request, SSL_IOCTL type)
|
||||
{
|
||||
sockop so = {request, true};
|
||||
so.ssl_type = type;
|
||||
|
||||
@@ -176,7 +176,7 @@ class WiiSocket
|
||||
{
|
||||
struct sockop
|
||||
{
|
||||
IOSRequest request;
|
||||
Request request;
|
||||
bool is_ssl;
|
||||
union
|
||||
{
|
||||
@@ -195,8 +195,8 @@ private:
|
||||
s32 CloseFd();
|
||||
s32 FCntl(u32 cmd, u32 arg);
|
||||
|
||||
void DoSock(IOSRequest request, NET_IOCTL type);
|
||||
void DoSock(IOSRequest request, SSL_IOCTL type);
|
||||
void DoSock(Request request, NET_IOCTL type);
|
||||
void DoSock(Request request, SSL_IOCTL type);
|
||||
void Update(bool read, bool write, bool except);
|
||||
bool IsValid() const { return fd >= 0; }
|
||||
public:
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
void SetLastNetError(s32 error) { errno_last = error; }
|
||||
void Clean() { WiiSockets.clear(); }
|
||||
template <typename T>
|
||||
void DoSock(s32 sock, const IOSRequest& request, T type)
|
||||
void DoSock(s32 sock, const Request& request, T type)
|
||||
{
|
||||
auto socket_entry = WiiSockets.find(sock);
|
||||
if (socket_entry == WiiSockets.end())
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user