Update of /cvsroot/arcem/arcem/support_modules/hostfs
In directory vz-cvs-4.sog:/tmp/cvs-serv11622/support_modules/hostfs
Modified Files:
Tag: arcem-fast
hostfs,ffa hostfs.s
Log Message:
HostFS fixes and improvements
* arminit.c - Cope properly with the unlikely event of finding a SWI
instruction at 0x0 or 0x4
* arch/filecommon.c - Fixed the new file caching code being broken when
reading/writing more data than will fit inside the file buffer (1MB)
* hostfs.c, support_modules/hostfs/hostfs,ffa, support/hostfs/hostfs.s -
Improved error detection and reporting. Failsafe error of HOSTFS_ERROR_UNKNOWN
is used if we can't find a specific error to return.
Index: hostfs,ffa
===================================================================
RCS file: /cvsroot/arcem/arcem/support_modules/hostfs/hostfs,ffa,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -u -d -r1.5.2.1 -r1.5.2.2
Binary files /tmp/cvsVc4bos and /tmp/cvs3v8qpK differ
Index: hostfs.s
===================================================================
RCS file: /cvsroot/arcem/arcem/support_modules/hostfs/hostfs.s,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -u -d -r1.5.2.1 -r1.5.2.2
--- hostfs.s 27 Oct 2011 20:41:54 -0000 1.5.2.1
+++ hostfs.s 5 Nov 2011 17:47:14 -0000 1.5.2.2
@@ -26,9 +26,13 @@
@ Filing system error codes
FILECORE_ERROR_DIRNOTEMPTY = 0xb4
+ FILECORE_ERROR_ACCESS = 0xbd
+ FILECORE_ERROR_ALREADYOPEN = 0xc2
FILECORE_ERROR_DISCFULL = 0xc6
FILECORE_ERROR_BADDISC = 0xc8
FILECORE_ERROR_DISCPROT = 0xc9
+ FILECORE_ERROR_NOTFOUND = 0xd6
+ HOSTFS_ERROR_UNKNOWN = 0x100
@ Filing system properties
FILING_SYSTEM_NUMBER = 0x99 @ TODO choose unique value
@@ -64,7 +68,7 @@
.string "RPCEmuHostFS"
help:
- .string "RPCEmu HostFS\t0.07 (31 Aug 2010)"
+ .string "RPCEmu HostFS\t0.08 (05 Nov 2011)"
.align
@@ -247,6 +251,9 @@
mov r9, #0
swi ArcEm_HostFS
+ cmp r9, #0xb0
+ bhs hostfs_error
+
ldmfd sp!, {pc}
@@ -258,6 +265,9 @@
mov r9, #1
swi ArcEm_HostFS
+ cmp r9, #0xb0
+ bhs hostfs_error
+
ldmfd sp!, {pc}
@@ -269,6 +279,9 @@
mov r9, #2
swi ArcEm_HostFS
+ cmp r9, #0xb0
+ bhs hostfs_error
+
ldmfd sp!, {pc}
@@ -280,6 +293,9 @@
mov r9, #3
swi ArcEm_HostFS
+ cmp r9, #0xb0
+ bhs hostfs_error
+
ldmfd sp!, {pc}
@@ -291,6 +307,9 @@
mov r9, #4
swi ArcEm_HostFS
+ cmp r9, #0xb0
+ bhs hostfs_error
+
ldmfd sp!, {pc}
@@ -303,7 +322,6 @@
swi ArcEm_HostFS
cmp r9, #0xb0
- movhs r0, r9
bhs hostfs_error
ldmfd sp!, {pc}
@@ -322,7 +340,6 @@
swi ArcEm_HostFS
cmp r9, #0xb0
- movhs r0, r9
bhs hostfs_error
ldmfd sp!, {pc}
@@ -331,12 +348,15 @@
/* FSEntry_GBPB (Multi-byte operations)
*/
fs_gbpb:
- stmfd sp!, {lr}
+ stmfd sp!, {lr}
- mov r9, #7
- swi ArcEm_HostFS
+ mov r9, #7
+ swi ArcEm_HostFS
- ldmfd sp!, {pc}
+ cmp r9, #0xb0
+ bhs hostfs_error
+
+ ldmfd sp!, {pc}
boot:
@@ -358,30 +378,39 @@
/* Entry:
- * R0 = error number
+ * R9 = error number
* Exit:
* Return function with error
*/
hostfs_error:
- teq r0, #255
- beq not_implemented
-
- teq r0, #FILECORE_ERROR_DIRNOTEMPTY
+ teq r9, #FILECORE_ERROR_DIRNOTEMPTY
adreq r0, err_dirnotempty
beq hostfs_return_error
- teq r0, #FILECORE_ERROR_DISCFULL
+ teq r9, #FILECORE_ERROR_ACCESS
+ adreq r0, err_access
+ beq hostfs_return_error
+
+ teq r9, #FILECORE_ERROR_ALREADYOPEN
+ adreq r0, err_alreadyopen
+ beq hostfs_return_error
+
+ teq r9, #FILECORE_ERROR_DISCFULL
adreq r0, err_discfull
beq hostfs_return_error
- teq r0, #FILECORE_ERROR_BADDISC
+ teq r9, #FILECORE_ERROR_BADDISC
adreq r0, err_baddisc
beq hostfs_return_error
- teq r0, #FILECORE_ERROR_DISCPROT
+ teq r9, #FILECORE_ERROR_DISCPROT
adreq r0, err_discprot
beq hostfs_return_error
+ teq r9, #FILECORE_ERROR_NOTFOUND
+ adreq r0, err_notfound
+ beq hostfs_return_error
+
adr r0, err_unknown
hostfs_return_error:
@@ -399,6 +428,16 @@
.string "Directory not empty"
.align
+err_access:
+ .int 0x10000 | (FILING_SYSTEM_NUMBER << 8) | FILECORE_ERROR_ACCESS
+ .string "The access details set for this item do not allow this"
+ .align
+
+err_alreadyopen:
+ .int 0x10000 | (FILING_SYSTEM_NUMBER << 8) |
FILECORE_ERROR_ALREADYOPEN
+ .string "This file is already open"
+ .align
+
err_discfull:
.int 0x10000 | (FILING_SYSTEM_NUMBER << 8) | FILECORE_ERROR_DISCFULL
.string "Disc is full"
@@ -414,6 +453,11 @@
.string "Disc is protected for changes"
.align
+err_notfound:
+ .int 0x10000 | (FILING_SYSTEM_NUMBER << 8) | FILECORE_ERROR_NOTFOUND
+ .string "Not found"
+ .align
+
err_unknown:
.int 0x10000 | (FILING_SYSTEM_NUMBER << 8)
.string "An unknown error occured"
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
--
arcem-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/arcem-cvs