mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-20 22:05:12 +00:00
[orbis-kernel] implement unlink, nmount/unmount nullfs
This commit is contained in:
parent
5a7d4dee1e
commit
afc865cc69
8 changed files with 161 additions and 22 deletions
|
|
@ -84,6 +84,9 @@ orbis::SysResult orbis::sys_undelete(Thread *thread, ptr<char> path) {
|
|||
return ErrorCode::NOSYS;
|
||||
}
|
||||
orbis::SysResult orbis::sys_unlink(Thread *thread, ptr<char> path) {
|
||||
if (auto unlink = thread->tproc->ops->unlink) {
|
||||
return unlink(thread, path);
|
||||
}
|
||||
return ErrorCode::NOSYS;
|
||||
}
|
||||
orbis::SysResult orbis::sys_unlinkat(Thread *thread, sint fd, ptr<char> path,
|
||||
|
|
|
|||
|
|
@ -1,28 +1,24 @@
|
|||
#include "sys/sysproto.hpp"
|
||||
#include "uio.hpp"
|
||||
#include "utils/Logs.hpp"
|
||||
|
||||
orbis::SysResult orbis::sys_mount(Thread *thread, ptr<char> type,
|
||||
ptr<char> path, sint flags, caddr_t data) {
|
||||
return ErrorCode::NOSYS;
|
||||
}
|
||||
|
||||
orbis::SysResult orbis::sys_unmount(Thread *thread, ptr<char> path,
|
||||
sint flags) {
|
||||
if (auto unmount = thread->tproc->ops->unmount) {
|
||||
return unmount(thread, path, flags);
|
||||
}
|
||||
|
||||
return ErrorCode::NOSYS;
|
||||
}
|
||||
|
||||
orbis::SysResult orbis::sys_nmount(Thread *thread, ptr<IoVec> iovp, uint iovcnt,
|
||||
sint flags) {
|
||||
ORBIS_LOG_ERROR(__FUNCTION__, iovp, iovcnt, flags);
|
||||
|
||||
for (auto it = iovp; it < iovp + iovcnt; it += 2) {
|
||||
IoVec a{}, b{};
|
||||
uread(a, it);
|
||||
uread(b, it + 1);
|
||||
|
||||
std::string aSv((char *)a.base, a.len);
|
||||
std::string bSv((char *)b.base, b.len);
|
||||
|
||||
std::fprintf(stderr, "%s: '%s':'%s'\n", __FUNCTION__, aSv.c_str(), bSv.c_str());
|
||||
if (auto nmount = thread->tproc->ops->nmount) {
|
||||
return nmount(thread, iovp, iovcnt, flags);
|
||||
}
|
||||
return {};
|
||||
|
||||
return ErrorCode::NOSYS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue