diff options
author | Jaap de Wolff <info@jasoon.nl> | 2018-02-12 12:23:44 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2018-02-16 12:16:07 +0100 |
commit | c9d4bac58c18495d92c3334614ad676ccef1de46 (patch) | |
tree | dff61c7530fedb2bb7c14c9eacfc9cd16820f15c /libgloss/arm | |
parent | 8329f4867b3f843318134f756c9c0fb27a5befd4 (diff) | |
download | newlib-c9d4bac58c18495d92c3334614ad676ccef1de46.zip newlib-c9d4bac58c18495d92c3334614ad676ccef1de46.tar.gz newlib-c9d4bac58c18495d92c3334614ad676ccef1de46.tar.bz2 |
adapt prototypes arm/syscalls.c to usual prototypes, and do not rely on implicit conversions
Diffstat (limited to 'libgloss/arm')
-rw-r--r-- | libgloss/arm/syscalls.c | 97 |
1 files changed, 49 insertions, 48 deletions
diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c index f80615d..dacd1a9 100644 --- a/libgloss/arm/syscalls.c +++ b/libgloss/arm/syscalls.c @@ -24,23 +24,23 @@ int _isatty (int); clock_t _times (struct tms *); int _gettimeofday (struct timeval *, void *); int _unlink (const char *); -int _link (void); +int _link (const char *, const char *); int _stat (const char *, struct stat *); int _fstat (int, struct stat *); int _swistat (int fd, struct stat * st); -caddr_t _sbrk (int); -int _getpid (int); +void * _sbrk (ptrdiff_t); +pid_t _getpid (void); int _close (int); clock_t _clock (void); int _swiclose (int); int _open (const char *, int, ...); int _swiopen (const char *, int); -int _write (int, char *, int); -int _swiwrite (int, char *, int); -int _lseek (int, int, int); -int _swilseek (int, int, int); -int _read (int, char *, int); -int _swiread (int, char *, int); +int _write (int, const void *, size_t); +int _swiwrite (int, const void *, size_t); +_off_t _lseek (int, _off_t, int); +_off_t _swilseek (int, _off_t, int); +int _read (int, void *, size_t); +int _swiread (int, void *, size_t); void initialise_monitor_handles (void); static int checkerror (int); @@ -323,7 +323,7 @@ get_errno (void) #ifdef ARM_RDI_MONITOR return do_AngelSWI (AngelSWI_Reason_Errno, NULL); #else - register r0 asm("r0"); + register int r0 asm("r0"); asm ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno)); return r0; #endif @@ -352,24 +352,24 @@ checkerror (int result) Returns the number of bytes *not* written. */ int _swiread (int fh, - char * ptr, - int len) + void * ptr, + size_t len) { #ifdef ARM_RDI_MONITOR int block[3]; block[0] = fh; block[1] = (int) ptr; - block[2] = len; + block[2] = (int) len; return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block)); #else - register r0 asm("r0"); - register r1 asm("r1"); - register r2 asm("r2"); + register int r0 asm("r0"); + register int r1 asm("r1"); + register int r2 asm("r2"); r0 = fh; - r1 = (int)ptr; - r2 = len; + r1 = (int) ptr; + r2 = (int) len; asm ("swi %a4" : "=r" (r0) : "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Read)); @@ -382,8 +382,8 @@ _swiread (int fh, bytes read. */ int __attribute__((weak)) _read (int fd, - char * ptr, - int len) + void * ptr, + size_t len) { int res; struct fdent *pfd; @@ -408,12 +408,12 @@ _read (int fd, } /* fd, is a user file descriptor. */ -int +off_t _swilseek (int fd, - int ptr, + off_t ptr, int dir) { - int res; + off_t res; struct fdent *pfd; /* Valid file descriptor? */ @@ -461,7 +461,7 @@ _swilseek (int fd, /* This code only does absolute seeks. */ block[0] = pfd->handle; - block[1] = ptr; + block[1] = (int) ptr; res = checkerror (do_AngelSWI (AngelSWI_Reason_Seek, block)); #else if (dir == SEEK_END) @@ -493,8 +493,9 @@ _swilseek (int fd, return -1; } +off_t _lseek (int fd, - int ptr, + off_t ptr, int dir) { return _swilseek (fd, ptr, dir); @@ -505,21 +506,21 @@ _lseek (int fd, int _swiwrite ( int fh, - char * ptr, - int len) + const void * ptr, + size_t len) { #ifdef ARM_RDI_MONITOR int block[3]; block[0] = fh; block[1] = (int) ptr; - block[2] = len; + block[2] = (int) len; return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block)); #else - register r0 asm("r0"); - register r1 asm("r1"); - register r2 asm("r2"); + register int r0 asm("r0"); + register int r1 asm("r1"); + register int r2 asm("r2"); r0 = fh; r1 = (int)ptr; r2 = len; @@ -533,8 +534,8 @@ _swiwrite ( /* fd, is a user file descriptor. */ int __attribute__((weak)) _write (int fd, - char * ptr, - int len) + const void * ptr, + size_t len) { int res; struct fdent *pfd; @@ -653,7 +654,7 @@ _swiclose (int fh) #ifdef ARM_RDI_MONITOR return checkerror (do_AngelSWI (AngelSWI_Reason_Close, &fh)); #else - register r0 asm("r0"); + register int r0 asm("r0"); r0 = fh; asm ("swi %a2" : "=r"(r0) @@ -694,17 +695,17 @@ _close (int fd) return res; } -int __attribute__((weak)) -_getpid (int n __attribute__ ((unused))) +pid_t __attribute__((weak)) +_getpid (void) { - return 1; + return (pid_t)1; } /* Heap limit returned from SYS_HEAPINFO Angel semihost call. */ uint __heap_limit = 0xcafedead; -caddr_t __attribute__((weak)) -_sbrk (int incr) +void * __attribute__((weak)) +_sbrk (ptrdiff_t incr) { extern char end asm ("end"); /* Defined by the linker. */ static char * heap_end; @@ -717,7 +718,7 @@ _sbrk (int incr) if ((heap_end + incr > stack_ptr) /* Honour heap limit if it's valid. */ - || (__heap_limit != 0xcafedead && heap_end + incr > __heap_limit)) + || (__heap_limit != 0xcafedead && heap_end + incr > (char *)__heap_limit)) { /* Some of the libstdc++-v3 tests rely upon detecting out of memory errors, so do not abort here. */ @@ -729,13 +730,13 @@ _sbrk (int incr) abort (); #else errno = ENOMEM; - return (caddr_t) -1; + return (void *) -1; #endif } heap_end += incr; - return (caddr_t) prev_heap_end; + return (void *) prev_heap_end; } int @@ -795,7 +796,7 @@ _stat (const char *fname, struct stat *st) } int __attribute__((weak)) -_link (void) +_link (const char *__path1 __attribute__ ((unused)), const char *__path2 __attribute__ ((unused))) { errno = ENOSYS; return -1; @@ -811,7 +812,7 @@ _unlink (const char *path) block[1] = strlen(path); res = do_AngelSWI (AngelSWI_Reason_Remove, block); #else - register r0 asm("r0"); + register int r0 asm("r0"); r0 = (int)path; asm ("swi %a2" : "=r"(r0) @@ -900,7 +901,7 @@ _isatty (int fd) #ifdef ARM_RDI_MONITOR tty = do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle); #else - register r0 asm("r0"); + register int r0 asm("r0"); r0 = pfd->handle; asm ("swi %a2" : "=r" (r0) @@ -941,7 +942,7 @@ _system (const char *s) } return e; #else - register r0 asm("r0"); + register int r0 asm("r0"); r0 = (int)s; asm ("swi %a2" : "=r" (r0) @@ -961,8 +962,8 @@ _rename (const char * oldpath, const char * newpath) block[3] = strlen(newpath); return checkerror (do_AngelSWI (AngelSWI_Reason_Rename, block)) ? -1 : 0; #else - register r0 asm("r0"); - register r1 asm("r1"); + register int r0 asm("r0"); + register int r1 asm("r1"); r0 = (int)oldpath; r1 = (int)newpath; asm ("swi %a3" |