/****************************************************************************** * Copyright (c) 2004, 2008 IBM Corporation * All rights reserved. * This program and the accompanying materials * are made available under the terms of the BSD License * which accompanies this distribution, and is available at * http://www.opensource.org/licenses/bsd-license.php * * Contributors: * IBM Corporation - initial implementation *****************************************************************************/ #include #include #include #include "iolib.h" void uart_send_byte(unsigned char b) { asm volatile ("":::"3","4","5","6","7"); io_putchar(b); } /** * Standard write function for the libc. * * @param fd file descriptor (should always be 1 or 2) * @param buf pointer to the array with the output characters * @param count number of bytes to be written * @return the number of bytes that have been written successfully */ ssize_t write(int fd, const void *buf, size_t count) { size_t i; char *ptr = (char *)buf; if (fd != 1 && fd != 2) return 0; for (i = 0; i < count; i++) { if (*ptr == '\n') uart_send_byte('\r'); uart_send_byte(*ptr++); } return i; }