mirror of
https://github.com/Ishan09811/pine.git
synced 2025-04-24 08:55:10 +00:00
Implement recursive delete IFileSystem
service calls
Co-Authored-By: AbandonedCart <twistedumbrella@gmail.com>
This commit is contained in:
parent
920a3b96d2
commit
d95bb121f3
@ -69,6 +69,12 @@ namespace skyline::service::fssrv {
|
||||
return {};
|
||||
}
|
||||
|
||||
Result IFileSystem::DeleteDirectoryRecursively(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||
std::string path{request.inputBuf.at(0).as_string(true)};
|
||||
std::filesystem::remove_all(path);
|
||||
return {};
|
||||
}
|
||||
|
||||
Result IFileSystem::OpenDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||
std::string path(request.inputBuf.at(0).as_string(true));
|
||||
|
||||
@ -94,6 +100,18 @@ namespace skyline::service::fssrv {
|
||||
return {};
|
||||
}
|
||||
|
||||
Result IFileSystem::GetTotalSpaceSize(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||
response.Push<u64>(90000000);
|
||||
return {};
|
||||
}
|
||||
|
||||
Result IFileSystem::CleanDirectoryRecursively(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||
std::string path{request.inputBuf.at(0).as_string(true)};
|
||||
std::filesystem::remove_all(path);
|
||||
backing->CreateDirectory(path, true);
|
||||
return {};
|
||||
}
|
||||
|
||||
Result IFileSystem::GetFileTimeStampRaw(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||
struct FileTimeStampRaw {
|
||||
u64 created{};
|
||||
|
@ -38,6 +38,11 @@ namespace skyline::service::fssrv {
|
||||
*/
|
||||
Result DeleteDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||
|
||||
/**
|
||||
* @brief Recursively delete a directory at the specified path in the filesystem
|
||||
*/
|
||||
Result DeleteDirectoryRecursively(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||
|
||||
/**
|
||||
* @brief Queries the DirectoryEntryType of the given path
|
||||
* @url https://switchbrew.org/wiki/Filesystem_services#GetEntryType
|
||||
@ -67,6 +72,18 @@ namespace skyline::service::fssrv {
|
||||
*/
|
||||
Result GetFreeSpaceSize(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||
|
||||
/**
|
||||
* @brief Returns the total space (free + used) of the filesystem
|
||||
* @url https://switchbrew.org/wiki/Filesystem_services#GetTotalSpaceSize
|
||||
*/
|
||||
Result GetTotalSpaceSize(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||
|
||||
/**
|
||||
* @brief Recursively delete the contents of a directory at the specified path
|
||||
* @url https://switchbrew.org/wiki/Filesystem_services#CleanDirectoryRecursively
|
||||
*/
|
||||
Result CleanDirectoryRecursively(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||
|
||||
/**
|
||||
* @url https://switchbrew.org/wiki/Filesystem_services#GetFileTimeStampRaw
|
||||
*/
|
||||
@ -77,11 +94,14 @@ namespace skyline::service::fssrv {
|
||||
SFUNC(0x1, IFileSystem, DeleteFile),
|
||||
SFUNC(0x2, IFileSystem, CreateDirectory),
|
||||
SFUNC(0x3, IFileSystem, DeleteDirectory),
|
||||
SFUNC(0x4, IFileSystem, DeleteDirectoryRecursively),
|
||||
SFUNC(0x7, IFileSystem, GetEntryType),
|
||||
SFUNC(0x8, IFileSystem, OpenFile),
|
||||
SFUNC(0x9, IFileSystem, OpenDirectory),
|
||||
SFUNC(0xA, IFileSystem, Commit),
|
||||
SFUNC(0xB, IFileSystem, GetFreeSpaceSize),
|
||||
SFUNC(0xC, IFileSystem, GetTotalSpaceSize),
|
||||
SFUNC(0xD, IFileSystem, CleanDirectoryRecursively)
|
||||
SFUNC(0xE, IFileSystem, GetFileTimeStampRaw)
|
||||
)
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user