/* 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) 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]; #elif defined(BOARD_TGCP) //TODO: implement #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);