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
arcem-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/arcem-cvs

Reply via email to