dragon ports: Proper return values from _uput* and _uget*
authorTormod Volden <debian.tormod@gmail.com>
Tue, 12 May 2015 21:09:38 +0000 (23:09 +0200)
committerAlan Cox <alan@linux.intel.com>
Tue, 12 May 2015 23:05:05 +0000 (00:05 +0100)
Thanks to Brett Gordon who found that the bogus
_uget return value was causing lseek() to fail.

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Kernel/platform-dragon-nx32/usermem_sam.s
Kernel/platform-dragon/usermem_sam.s

index 08ff749..de4ff28 100644 (file)
@@ -24,6 +24,7 @@
        ; imported
        .globl map_process_always
        .globl map_kernel
+
        .area .common
 
 __ugetc:
@@ -56,6 +57,7 @@ ugetl:
        sta ,u+
        leay -1,y
        bne ugetl
+       ldx #0
        puls u,y,cc,pc
 
 __ugets:
@@ -90,6 +92,7 @@ __uputc:
        exg d,x
        stb ,x
        jsr map_kernel
+       ldx #0
        puls cc,pc
 
 __uputw:
@@ -100,6 +103,7 @@ __uputw:
        exg d,x
        std ,x
        jsr map_kernel
+       ldx #0
        puls cc,pc
 
 ;      X = source, user, size on stack
@@ -115,6 +119,7 @@ uputl:
        jsr map_kernel
        leay -1,y
        bne uputl
+       ldx #0
        puls u,y,cc,pc
 
 __uzero:
@@ -128,4 +133,5 @@ uzloop:
        leay -1,y
        bne uzloop
        jsr map_kernel
+       ldx #0
        puls y,cc,pc
index 4360de8..1561e51 100644 (file)
        include "kernel.def"
         include "../kernel09.def"
 
+       ; exported
        .globl __ugetc
        .globl __ugetw
        .globl __uget
        .globl __ugets
-
        .globl __uputc
        .globl __uputw
        .globl __uput
@@ -52,6 +52,7 @@ ugetl:
        sta ,u+
        leay -1,y
        bne ugetl
+       ldx #0
        puls u,y,cc,pc
 
 __ugets:
@@ -86,6 +87,7 @@ __uputc:
        exg d,x
        stb ,x
        SAM_KERNEL
+       ldx #0
        puls cc,pc
 
 __uputw:
@@ -96,6 +98,7 @@ __uputw:
        exg d,x
        std ,x
        SAM_KERNEL
+       ldx #0
        puls cc,pc
 
 ;      X = source, user, size on stack
@@ -111,6 +114,7 @@ uputl:
        SAM_KERNEL
        leay -1,y
        bne uputl
+       ldx #0
        puls u,y,cc,pc
 
 __uzero:
@@ -124,4 +128,5 @@ uzloop:
        leay -1,y
        bne uzloop
        SAM_KERNEL
+       ldx #0
        puls y,cc,pc