aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--targets/corstone-300/retarget.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/targets/corstone-300/retarget.c b/targets/corstone-300/retarget.c
index 13cf68b..4bde44d 100644
--- a/targets/corstone-300/retarget.c
+++ b/targets/corstone-300/retarget.c
@@ -33,7 +33,8 @@
#define STDOUT 0x8002
#define STDERR 0x8003
-#define RETARGET(fun) _sys##fun
+#define RETARGET(fun) _sys##fun
+#define IO_OUTPUT(len) 0
#else
/*
@@ -52,7 +53,8 @@ extern FILEHANDLE _open(const char * /*name*/, int /*openmode*/);
#define STDOUT 0x01
#define STDERR 0x02
-#define RETARGET(fun) fun
+#define RETARGET(fun) fun
+#define IO_OUTPUT(len) len
#endif
@@ -90,15 +92,16 @@ int RETARGET(_write)(FILEHANDLE fh, const unsigned char *buf, unsigned int len,
case STDOUT:
case STDERR: {
int c;
+ unsigned int i;
- while (len-- > 0) {
- c = fputc(*buf++, stdout);
+ for (i = 0; i < len; i++) {
+ c = fputc(buf[i], stdout);
if (c == EOF) {
return EOF;
}
}
- return 0;
+ return IO_OUTPUT(len);
}
default:
return EOF;
@@ -111,17 +114,18 @@ int RETARGET(_read)(FILEHANDLE fh, unsigned char *buf, unsigned int len, int mod
switch (fh) {
case STDIN: {
int c;
+ unsigned int i;
- while (len-- > 0) {
+ for (i = 0; i < len; i++) {
c = fgetc(stdin);
if (c == EOF) {
return EOF;
}
- *buf++ = (unsigned char)c;
+ buf[i] = (unsigned char)c;
}
- return 0;
+ return IO_OUTPUT(len);
}
default:
return EOF;