/* ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* * **** This file incorporates work covered by the following copyright and **** * **** permission notice: **** * * Copyright (c) 2009 by Michael Fischer. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the author nor the names of its contributors may * be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * **************************************************************************** * History: * * 28.03.09 mifi First Version, based on the original syscall.c from * newlib version 1.17.0 * 17.08.09 gdisirio Modified the file for use under ChibiOS/RT ****************************************************************************/ #include #include #include #include #include #include /***************************************************************************/ int _read_r(struct _reent *r, int file, char * ptr, int len) { (void)r; (void)file; (void)ptr; (void)len; errno = EINVAL; return -1; } /***************************************************************************/ int _lseek_r(struct _reent *r, int file, int ptr, int dir) { (void)r; (void)file; (void)ptr; (void)dir; return 0; } /***************************************************************************/ int _write_r(struct _reent *r, int file, char * ptr, int len) { (void)r; (void)file; (void)ptr; return len; } /***************************************************************************/ int _close_r(struct _reent *r, int file) { (void)r; (void)file; return 0; } /***************************************************************************/ caddr_t _sbrk_r(struct _reent *r, int incr) { void *p; chDbgCheck(incr > 0, "_sbrk_r"); (void)r; p = chCoreAlloc((size_t)incr); if (p == NULL) { errno = ENOMEM; return (caddr_t)-1; } return (caddr_t)p; } /***************************************************************************/ int _fstat_r(struct _reent *r, int file, struct stat * st) { (void)r; (void)file; memset(st, 0, sizeof(*st)); st->st_mode = S_IFCHR; return 0; } /***************************************************************************/ int _isatty_r(struct _reent *r, int fd) { (void)r; (void)fd; return 1; } /*** EOF ***/