/* See LICENSE of license details. */ #include #include #include #include #include "platform.h" #include "stub.h" #include "weak_under_alias.h" ssize_t __wrap_write(int fd, const void *ptr, size_t len) { const uint8_t *current = (const uint8_t *)ptr; if (isatty(fd)) { for (size_t jj = 0; jj < len; jj++) { #if defined(BOARD_ehrenberg) || defined(BOARD_tgc_vp) while (get_uart_rx_tx_reg_tx_free(uart) == 0) ; uart_write(uart, current[jj]); if (current[jj] == '\n') { while (get_uart_rx_tx_reg_tx_free(uart) == 0) ; uart_write(uart, '\r'); } #elif defined(BOARD_iss) *((uint32_t*) 0xFFFF0000) = current[jj]; #else while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ; UART0_REG(UART_REG_TXFIFO) = current[jj]; if (current[jj] == '\n') { while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ; UART0_REG(UART_REG_TXFIFO) = '\r'; } #endif } return len; } return _stub(EBADF); } weak_under_alias(write);