diff --git a/stm-firmware/syscalls.c b/stm-firmware/syscalls.c index 1747e47..d8fff8a 100644 --- a/stm-firmware/syscalls.c +++ b/stm-firmware/syscalls.c @@ -1,41 +1,64 @@ #include -char* _sbrk(int incr) { - extern char heap_low; // Defined by the linker - extern char heap_top; - static char *heap_end; - char *prev_heap_end; +char* _sbrk(int incr) +{ + extern char heap_low; // Defined by the linker + extern char heap_top; + static char *heap_end; + char *prev_heap_end; - if (heap_end == 0) { - heap_end = &heap_low; - } - prev_heap_end = heap_end; - if (heap_end + incr > &heap_top) { - return 0; - } + if (heap_end == 0) { + heap_end = &heap_low; + } + + prev_heap_end = heap_end; + if (heap_end + incr > &heap_top) { + return 0; + } + + heap_end += incr; + return (char*) prev_heap_end; +} + +int _isatty(int fd) +{ + (void)fd; - heap_end += incr; - return (char*) prev_heap_end; - } -int _isatty(int fd) { return 1; } -int _close(int fd) { + +int _close(int fd) +{ + (void)fd; + return 0; } -int _open(int fd) { + +int _open(int fd) +{ + (void)fd; + return 0; } -int _fstat(void) { + +int _fstat(void) +{ return 0; } -int _lseek(void) { + +int _lseek(void) +{ return 0; } -int _read(void) { + +int _read(void) +{ return 0; } -int _write(int fd, const void *buf, int count) { - uart_send_array((char*)buf, count); + +int _write(int fd, const void *buf, int count) +{ + if (fd == 1) + uart_send_array((char*)buf, count); return count; }