FYI, I just pushed the following:

commit 3d2d5dcc9c27b84dc2e5e9ed53be0f784a450042
Author: Nicolas Pitre <[email protected]>
Date:   Tue Feb 2 00:05:42 2010 -0500

    ARM semihosting: fix EOF handling with SYS_READ
    
    The semihosting interface has a strange convention for read/write where
    the unused amount of buffer must be returned.  We failed to return the
    total buffer size when the local read() call returned 0.
    
    Signed-off-by: Nicolas Pitre <[email protected]>

diff --git a/src/target/arm_semihosting.c b/src/target/arm_semihosting.c
index c41c5a0..9b853d9 100644
--- a/src/target/arm_semihosting.c
+++ b/src/target/arm_semihosting.c
@@ -190,7 +190,7 @@ static int do_semihosting(struct target *target)
                        } else {
                                result = read(fd, buf, l);
                                armv4_5->semihosting_errno = errno;
-                               if (result > 0) {
+                               if (result >= 0) {
                                        retval = target_write_buffer(target, a, 
result, buf);
                                        if (retval != ERROR_OK) {
                                                free(buf);
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to