Files
raspberrypi/newlib0/syscalls.c
2012-10-23 01:06:49 -04:00

223 lines
3.3 KiB
C

/* 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 <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <sys/times.h>
#include <errno.h>
#include <reent.h>
void uart_putc ( unsigned int c );
unsigned int heap_end=0x0020000;
unsigned int prev_heap_end;
/* Forward prototypes. */
int _system _PARAMS ((const char *));
int _rename _PARAMS ((const char *, const char *));
int isatty _PARAMS ((int));
clock_t _times _PARAMS ((struct tms *));
int _gettimeofday _PARAMS ((struct timeval *, struct timezone *));
void _raise _PARAMS ((void));
int _unlink _PARAMS ((void));
int _link _PARAMS ((void));
int _stat _PARAMS ((const char *, struct stat *));
int _fstat _PARAMS ((int, struct stat *));
caddr_t _sbrk _PARAMS ((int));
int _getpid _PARAMS ((int));
int _kill _PARAMS ((int, int));
void _exit _PARAMS ((int));
int _close _PARAMS ((int));
int _open _PARAMS ((const char *, int, ...));
int _write _PARAMS ((int, char *, int));
int _lseek _PARAMS ((int, int, int));
int _read _PARAMS ((int, char *, int));
void initialise_monitor_handles _PARAMS ((void));
//static int
//remap_handle (int fh)
//{
//return 0;
//}
void
initialise_monitor_handles (void)
{
}
//static int
//get_errno (void)
//{
//return(0);
//}
//static int
//error (int result)
//{
//errno = get_errno ();
//return result;
//}
int
_read (int file,
char * ptr,
int len)
{
return len;
}
int
_lseek (int file,
int ptr,
int dir)
{
return 0;
}
int
_write (int file,
char * ptr,
int len)
{
int r;
for(r=0;r<len;r++) uart_putc(ptr[r]);
return len;
}
int
_open (const char * path,
int flags,
...)
{
return 0;
}
int
_close (int file)
{
return 0;
}
void
_exit (int n)
{
while(1);
}
int
_kill (int n, int m)
{
return(0);
}
int
_getpid (int n)
{
return 1;
n = n;
}
caddr_t
_sbrk (int incr)
{
prev_heap_end = heap_end;
heap_end += incr;
return (caddr_t) prev_heap_end;
}
int
_fstat (int file, struct stat * st)
{
return 0;
}
int _stat (const char *fname, struct stat *st)
{
return 0;
}
int
_link (void)
{
return -1;
}
int
_unlink (void)
{
return -1;
}
void
_raise (void)
{
return;
}
int
_gettimeofday (struct timeval * tp, struct timezone * tzp)
{
if(tp)
{
tp->tv_sec = 10;
tp->tv_usec = 0;
}
if (tzp)
{
tzp->tz_minuteswest = 0;
tzp->tz_dsttime = 0;
}
return 0;
}
clock_t
_times (struct tms * tp)
{
clock_t timeval;
timeval = 10;
if (tp)
{
tp->tms_utime = timeval; /* user time */
tp->tms_stime = 0; /* system time */
tp->tms_cutime = 0; /* user time, children */
tp->tms_cstime = 0; /* system time, children */
}
return timeval;
};
int
_isatty (int fd)
{
return 1;
fd = fd;
}
int
_system (const char *s)
{
if (s == NULL)
return 0;
errno = ENOSYS;
return -1;
}
int
_rename (const char * oldpath, const char * newpath)
{
errno = ENOSYS;
return -1;
}