From 194bd7fdb9c0ffd66f7c574c2854f396c2a8ab93 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sat, 17 Nov 2018 11:35:25 +0900 Subject: Initial schematic commit --- syscalls.c | 190 ------------------------------------------------------------- 1 file changed, 190 deletions(-) delete mode 100644 syscalls.c (limited to 'syscalls.c') diff --git a/syscalls.c b/syscalls.c deleted file mode 100644 index 023cac3..0000000 --- a/syscalls.c +++ /dev/null @@ -1,190 +0,0 @@ -/* Support files for GNU libc. Files in the system namespace go here. - Files in the C namespace (ie those that do not start with an - underscore) go in .c. */ - -#include <_ansi.h> -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#define FreeRTOS -#define MAX_STACK_SIZE 0x200 - -extern int __io_putchar(int ch) __attribute__((weak)); -extern int __io_getchar(void) __attribute__((weak)); - -#ifndef FreeRTOS - register char * stack_ptr asm("sp"); -#endif - - - - -caddr_t _sbrk(int incr) -{ - extern char end asm("end"); - static char *heap_end; - char *prev_heap_end,*min_stack_ptr; - - if (heap_end == 0) - heap_end = &end; - - prev_heap_end = heap_end; - -#ifdef FreeRTOS - /* Use the NVIC offset register to locate the main stack pointer. */ - min_stack_ptr = (char*)(*(unsigned int *)*(unsigned int *)0xE000ED08); - /* Locate the STACK bottom address */ - min_stack_ptr -= MAX_STACK_SIZE; - - if (heap_end + incr > min_stack_ptr) -#else - if (heap_end + incr > stack_ptr) -#endif - { -// write(1, "Heap and stack collision\n", 25); -// abort(); - errno = ENOMEM; - return (caddr_t) -1; - } - - heap_end += incr; - - return (caddr_t) prev_heap_end; -} - -/* - * _gettimeofday primitive (Stub function) - * */ -int _gettimeofday (struct timeval * tp, struct timezone * tzp) -{ - /* Return fixed data for the timezone. */ - if (tzp) - { - tzp->tz_minuteswest = 0; - tzp->tz_dsttime = 0; - } - - return 0; -} -void initialise_monitor_handles() -{ -} - -int _getpid(void) -{ - return 1; -} - -int _kill(int pid, int sig) -{ - errno = EINVAL; - return -1; -} - -void _exit (int status) -{ - _kill(status, -1); - while (1) {} -} - -int _write(int file, char *ptr, int len) -{ - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - __io_putchar( *ptr++ ); - } - return len; -} - -int _close(int file) -{ - return -1; -} - -int _fstat(int file, struct stat *st) -{ - st->st_mode = S_IFCHR; - return 0; -} - -int _isatty(int file) -{ - return 1; -} - -int _lseek(int file, int ptr, int dir) -{ - return 0; -} - -int _read(int file, char *ptr, int len) -{ - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - *ptr++ = __io_getchar(); - } - - return len; -} - -int _open(char *path, int flags, ...) -{ - /* Pretend like we always fail */ - return -1; -} - -int _wait(int *status) -{ - errno = ECHILD; - return -1; -} - -int _unlink(char *name) -{ - errno = ENOENT; - return -1; -} - -int _times(struct tms *buf) -{ - return -1; -} - -int _stat(char *file, struct stat *st) -{ - st->st_mode = S_IFCHR; - return 0; -} - -int _link(char *old, char *new) -{ - errno = EMLINK; - return -1; -} - -int _fork(void) -{ - errno = EAGAIN; - return -1; -} - -int _execve(char *name, char **argv, char **env) -{ - errno = ENOMEM; - return -1; -} -- cgit