mirror of
https://github.com/ksherlock/mpw.git
synced 2024-11-25 04:31:52 +00:00
OS::Delete
This commit is contained in:
parent
a16cd348e9
commit
5708edd11d
@ -24,6 +24,7 @@ namespace {
|
|||||||
{
|
{
|
||||||
switch (xerrno)
|
switch (xerrno)
|
||||||
{
|
{
|
||||||
|
case 0: return 0;
|
||||||
case EBADF: return rfNumErr;
|
case EBADF: return rfNumErr;
|
||||||
case EIO: return ioErr;
|
case EIO: return ioErr;
|
||||||
case EACCES: return permErr;
|
case EACCES: return permErr;
|
||||||
@ -35,6 +36,8 @@ namespace {
|
|||||||
|
|
||||||
case EEXIST: return dupFNErr;
|
case EEXIST: return dupFNErr;
|
||||||
|
|
||||||
|
case EBUSY: return fBsyErr;
|
||||||
|
|
||||||
case EDQUOT: return dskFulErr;
|
case EDQUOT: return dskFulErr;
|
||||||
case ENOSPC: return dskFulErr;
|
case ENOSPC: return dskFulErr;
|
||||||
|
|
||||||
@ -87,7 +90,39 @@ namespace OS
|
|||||||
|
|
||||||
memoryWriteWord(d0, parm + 16);
|
memoryWriteWord(d0, parm + 16);
|
||||||
return d0;
|
return d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t Delete(uint16_t trap)
|
||||||
|
{
|
||||||
|
uint32_t d0;
|
||||||
|
|
||||||
|
uint32_t parm = cpuGetAReg(0);
|
||||||
|
|
||||||
|
fprintf(stderr, "%04x Delete(%08x)\n", trap, parm);
|
||||||
|
|
||||||
|
uint32_t ioCompletion = memoryReadLong(parm + 12);
|
||||||
|
uint32_t namePtr = memoryReadLong(parm + 18);
|
||||||
|
|
||||||
|
uint16_t ioVRefNum = memoryReadWord(parm + 22);
|
||||||
|
uint8_t ioFVersNum = memoryReadByte(parm + 26);
|
||||||
|
|
||||||
|
std::string sname = ToolBox::ReadPString(namePtr);
|
||||||
|
|
||||||
|
if (!sname.length())
|
||||||
|
{
|
||||||
|
memoryWriteWord(bdNamErr, parm + 16);
|
||||||
|
return bdNamErr;
|
||||||
|
}
|
||||||
|
fprintf(stderr, " Delete(%s)\n", sname.c_str());
|
||||||
|
|
||||||
|
int ok = ::unlink(sname.c_str());
|
||||||
|
if (ok < 0)
|
||||||
|
d0 = errno_to_oserr(errno);
|
||||||
|
else
|
||||||
|
d0 = 0;
|
||||||
|
|
||||||
|
memoryWriteWord(d0, parm + 16);
|
||||||
|
return d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,6 +100,7 @@ namespace OS
|
|||||||
|
|
||||||
|
|
||||||
uint16_t Create(uint16_t trap);
|
uint16_t Create(uint16_t trap);
|
||||||
|
uint16_t Delete(uint16_t trap);
|
||||||
|
|
||||||
uint16_t GetFileInfo(uint16_t trap);
|
uint16_t GetFileInfo(uint16_t trap);
|
||||||
uint16_t SetFileInfo(uint16_t trap);
|
uint16_t SetFileInfo(uint16_t trap);
|
||||||
|
@ -33,6 +33,9 @@ namespace ToolBox {
|
|||||||
case 0xa008:
|
case 0xa008:
|
||||||
d0 = OS::Create(trap);
|
d0 = OS::Create(trap);
|
||||||
break;
|
break;
|
||||||
|
case 0xa009:
|
||||||
|
d0 = OS::Delete(trap);
|
||||||
|
break;
|
||||||
|
|
||||||
case 0xA00C:
|
case 0xA00C:
|
||||||
d0 = OS::GetFileInfo(trap);
|
d0 = OS::GetFileInfo(trap);
|
||||||
|
Loading…
Reference in New Issue
Block a user