From 4af7d59c9cee24d5c0cabcc795da4bbc2f7911ea Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Wed, 23 Sep 2015 22:54:33 -0400 Subject: [PATCH] implement rename ioctl --- mpw/mpw_access.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/mpw/mpw_access.cpp b/mpw/mpw_access.cpp index 7b5e5e7..b276a2f 100644 --- a/mpw/mpw_access.cpp +++ b/mpw/mpw_access.cpp @@ -124,7 +124,6 @@ namespace MPW uint32_t ftrap_delete(uint32_t name) { - std::string sname; int rv; @@ -139,6 +138,22 @@ namespace MPW } + uint32_t ftrap_rename(uint32_t src, uint32_t dest) + { + std::string sname; + std::string dname; + int rv; + + sname = ToolBox::ReadCString(src, true); + dname = ToolBox::ReadCString(dest, true); + + Log(" rename(%s, %s)\n", sname.c_str(), dname.c_str()); + rv = rename(sname.c_str(), dname.c_str()); + if (rv < 0) return 0x40000000 | mpw_errno_from_errno(); + + return 0; + } + uint32_t ftrap_open(uint32_t name, uint32_t parm) { @@ -252,6 +267,10 @@ namespace MPW d0 = ftrap_delete(name); break; + case kF_RENAME: + d0 = ftrap_rename(name, parm); + break; + case kF_GTABINFO: d0 = ftrap_get_tab_info(name, parm); break;