[PATCH v1 3/3] Minor fixes, alignments and cleanup

Alexander Fedotov <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
---
 libgloss/arm/crt0.S            |   2 +-
 libgloss/arm/syscalls.c        | 106 ++++++++++++++-------------------
 newlib/libc/sys/arm/arm.h      |   2 +-
 newlib/libc/sys/arm/syscalls.c |  50 +++++++++++-----
 4 files changed, 82 insertions(+), 78 deletions(-)

diff --git a/libgloss/arm/crt0.S b/libgloss/arm/crt0.S
index 3e740c654..8490bde2f 100644
--- a/libgloss/arm/crt0.S
+++ b/libgloss/arm/crt0.S
@@ -440,7 +440,7 @@ __change_mode:
 	beq	.LC10
 
 /* See whether we are scanning a string.  */
-	cmp	r3, #'"'
+	cmp	r3, #'\"'
 #ifdef __thumb__
 	beq	.LC20
 	cmp	r3, #'\''
diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c
index 3605e0fd0..fc394f94b 100644
--- a/libgloss/arm/syscalls.c
+++ b/libgloss/arm/syscalls.c
@@ -18,30 +18,30 @@
 #include "swi.h"
 
 /* Forward prototypes.  */
-int     _system     (const char *);
-int     _rename     (const char *, const char *);
-int     _isatty		(int);
+int	_system		(const char *);
+int	_rename		(const char *, const char *);
+int	_isatty		(int);
 clock_t _times		(struct tms *);
-int     _gettimeofday	(struct timeval *, void *);
-int     _unlink		(const char *);
-int     _link 		(const char *, const char *);
-int     _stat 		(const char *, struct stat *);
-int     _fstat 		(int, struct stat *);
+int	_gettimeofday	(struct timeval *, void *);
+int	_unlink		(const char *);
+int	_link		(const char *, const char *);
+int	_stat		(const char *, struct stat *);
+int	_fstat		(int, struct stat *);
 int	_swistat	(int fd, struct stat * st);
-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, 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);
+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, 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);
 static int	error		(int);
@@ -143,7 +143,7 @@ initialise_monitor_handles (void)
   int i;
   
   /* Open the standard file descriptors by opening the special
-   * teletype device, ":tt", read-only to obtain a descritpor for
+   * teletype device, ":tt", read-only to obtain a descriptor for
    * standard input and write-only to obtain a descriptor for standard
    * output. Finally, open ":tt" in append mode to obtain a descriptor
    * for standard error. Since this is a write mode, most kernels will
@@ -154,7 +154,7 @@ initialise_monitor_handles (void)
 
 #ifdef ARM_RDI_MONITOR
   int volatile block[3];
-  
+
   block[0] = (int) ":tt";
   block[2] = 3;     /* length of filename */
   block[1] = 0;     /* mode "r" */
@@ -351,17 +351,15 @@ checkerror (int result)
    len, is the length in bytes to read. 
    Returns the number of bytes *not* written. */
 int
-_swiread (int fh,
-	  void * ptr,
-	  size_t len)
+_swiread (int fh, void * ptr, size_t len)
 {
 #ifdef ARM_RDI_MONITOR
   int block[3];
-  
+
   block[0] = fh;
   block[1] = (int) ptr;
   block[2] = (int) len;
-  
+
   return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block));
 #else
   register int r0 asm("r0");
@@ -381,9 +379,7 @@ _swiread (int fh,
    Translates the return of _swiread into
    bytes read. */
 int __attribute__((weak))
-_read (int fd,
-       void * ptr,
-       size_t len)
+_read (int fd, void * ptr, size_t len)
 {
   int res;
   struct fdent *pfd;
@@ -409,9 +405,7 @@ _read (int fd,
 
 /* fd, is a user file descriptor. */
 off_t
-_swilseek (int fd,
-	off_t ptr,
-	int dir)
+_swilseek (int fd, off_t ptr, int dir)
 {
   off_t res;
   struct fdent *pfd;
@@ -447,7 +441,7 @@ _swilseek (int fd,
         }
       dir = SEEK_SET;
     }
- 
+
 #ifdef ARM_RDI_MONITOR
   int block[2];
   if (dir == SEEK_END)
@@ -458,7 +452,7 @@ _swilseek (int fd,
         return -1;
       ptr += res;
     }
-  
+
   /* This code only does absolute seeks.  */
   block[0] = pfd->handle;
   block[1] = (int) ptr;
@@ -494,9 +488,7 @@ _swilseek (int fd,
 }
 
 off_t
-_lseek (int fd,
-	off_t ptr,
-	int dir)
+_lseek (int fd, off_t ptr, int dir)
 {
   return _swilseek (fd, ptr, dir);
 }
@@ -504,18 +496,15 @@ _lseek (int fd,
 /* fh, is a valid internal file handle.
    Returns the number of bytes *not* written. */
 int
-_swiwrite (
-	   int    fh,
-	   const void * ptr,
-	   size_t    len)
+_swiwrite (int fh, const void * ptr, size_t len)
 {
 #ifdef ARM_RDI_MONITOR
   int block[3];
-  
+
   block[0] = fh;
   block[1] = (int) ptr;
   block[2] = (int) len;
-  
+
   return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block));
 #else
   register int r0 asm("r0");
@@ -533,9 +522,7 @@ _swiwrite (
 
 /* fd, is a user file descriptor. */
 int __attribute__((weak))
-_write (int    fd,
-	const void * ptr,
-	size_t    len)
+_write (int fd, const void * ptr, size_t len)
 {
   int res;
   struct fdent *pfd;
@@ -593,7 +580,7 @@ _swiopen (const char * path, int flags)
         }
     }
 
-  /* The flags are Unix-style, so we need to convert them. */ 
+  /* The flags are Unix-style, so we need to convert them.  */
 #ifdef O_BINARY
   if (flags & O_BINARY)
     aflags |= 1;
@@ -611,25 +598,24 @@ _swiopen (const char * path, int flags)
 
   if (flags & O_APPEND)
     {
-      /* Can't ask for w AND a; means just 'a'.  */
-      aflags &= ~4;
+      aflags &= ~4; /* Can't ask for w AND a; means just 'a'.  */
       aflags |= 8;
     }
-  
+
 #ifdef ARM_RDI_MONITOR
   block[0] = (int) path;
   block[2] = strlen (path);
   block[1] = aflags;
-  
+
   fh = do_AngelSWI (AngelSWI_Reason_Open, block);
-  
+
 #else
   asm ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0"
        : "=r"(fh)
        : "i" (SWI_Open),"r"(path),"r"(aflags)
        : "r0","r1");
 #endif
-  
+
   /* Return a user file descriptor or an error. */
   if (fh >= 0)
     {
@@ -784,13 +770,13 @@ _stat (const char *fname, struct stat *st)
 {
   int fd, res;
   memset (st, 0, sizeof (* st));
-  /* The best we can do is try to open the file readonly.  
-     If it exists, then we can guess a few things about it. */
+  /* The best we can do is try to open the file readonly.  If it exists,
+     then we can guess a few things about it.  */
   if ((fd = _open (fname, O_RDONLY)) == -1)
     return -1;
   st->st_mode |= S_IFREG | S_IREAD;
   res = _swistat (fd, st);
-  /* Not interested in the error. */
+  /* Not interested in the error.  */
   _close (fd); 
   return res;
 }
@@ -880,7 +866,7 @@ _times (struct tms * tp)
       tp->tms_cutime = 0;	/* user time, children */
       tp->tms_cstime = 0;	/* system time, children */
     }
-  
+
   return timeval;
 };
 
diff --git a/newlib/libc/sys/arm/arm.h b/newlib/libc/sys/arm/arm.h
index dbed81750..10e5b0509 100644
--- a/newlib/libc/sys/arm/arm.h
+++ b/newlib/libc/sys/arm/arm.h
@@ -85,6 +85,6 @@
 #define CPSR_F_MASK			0x40	/* FIQ bit.  */
 #define CPSR_I_MASK			0x80	/* IRQ bit.  */
 
-#define CPSR_M_MASK			0x0F	/* Mode mask except M[4] */
+#define CPSR_M_MASK			0x0F	/* Mode mask except M[4].  */
 
 #endif /* _LIBGLOSS_ARM_H */
diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c
index a2997b44c..1f7222980 100644
--- a/newlib/libc/sys/arm/syscalls.c
+++ b/newlib/libc/sys/arm/syscalls.c
@@ -114,6 +114,16 @@ void
 initialise_monitor_handles (void)
 {
   int i;
+  
+  /* Open the standard file descriptors by opening the special
+   * teletype device, ":tt", read-only to obtain a descriptor for
+   * standard input and write-only to obtain a descriptor for standard
+   * output. Finally, open ":tt" in append mode to obtain a descriptor
+   * for standard error. Since this is a write mode, most kernels will
+   * probably return the same value as for standard output, but the
+   * kernel can differentiate the two using the mode flag and return a
+   * different descriptor for standard error.
+   */
 
 #ifdef ARM_RDI_MONITOR
   int volatile block[3];
@@ -163,11 +173,12 @@ get_errno (void)
   return do_AngelSWI (AngelSWI_Reason_Errno, NULL);
 #else
   register int r0 asm("r0");
-  asm ("swi %a1" : "=r"(r0): "i" (SWI_GetErrno));
+  asm ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno));
   return r0;
 #endif
 }
 
+/* Set errno and return result. */
 static int
 error (int result)
 {
@@ -183,7 +194,10 @@ wrap (int result)
   return result;
 }
 
-/* Returns # chars not! written.  */
+/* file, is a valid user file handle.
+   ptr, is a null terminated string.
+   len, is the length in bytes to read. 
+   Returns the number of bytes *not* written. */
 int
 _swiread (int file, void * ptr, size_t len)
 {
@@ -207,6 +221,9 @@ _swiread (int file, void * ptr, size_t len)
 #endif
 }
 
+/* file, is a valid user file handle.
+   Translates the return of _swiread into
+   bytes read. */
 int __attribute__((weak))
 _read (int file, void * ptr, size_t len)
 {
@@ -223,15 +240,13 @@ _read (int file, void * ptr, size_t len)
   return len - x;
 }
 
+/* file, is a user file descriptor. */
 off_t
 _swilseek (int file, off_t ptr, int dir)
 {
   _off_t res;
   int fh = remap_handle (file);
   int slot = findslot (fh);
-#ifdef ARM_RDI_MONITOR
-  int block[2];
-#endif
 
   if (dir == SEEK_CUR)
     {
@@ -249,6 +264,7 @@ _swilseek (int file, off_t ptr, int dir)
     }
 
 #ifdef ARM_RDI_MONITOR
+  int block[2];
   if (dir == SEEK_END)
     {
       block[0] = fh;
@@ -294,7 +310,8 @@ _lseek (int file, off_t ptr, int dir)
   return wrap (_swilseek (file, ptr, dir));
 }
 
-/* Returns #chars not! written.  */
+/* file, is a valid internal file handle.
+   Returns the number of bytes *not* written. */
 int
 _swiwrite (int file, const void * ptr, size_t len)
 {
@@ -319,6 +336,7 @@ _swiwrite (int file, const void * ptr, size_t len)
 #endif
 }
 
+/* file, is a user file descriptor. */
 int __attribute__((weak))
 _write (int file, const void * ptr, size_t len)
 {
@@ -366,7 +384,7 @@ _swiopen (const char * path, int flags)
 
   if (flags & O_APPEND)
     {
-      aflags &= ~4;     /* Can't ask for w AND a; means just 'a'.  */
+      aflags &= ~4; /* Can't ask for w AND a; means just 'a'.  */
       aflags |= 8;
     }
 
@@ -527,7 +545,7 @@ _sbrk (ptrdiff_t incr)
 
 extern void memset (struct stat *, int, unsigned int);
 
-int
+int __attribute__((weak))
 _fstat (int file, struct stat * st)
 {
   memset (st, 0, sizeof (* st));
@@ -537,7 +555,8 @@ _fstat (int file, struct stat * st)
   file = file;
 }
 
-int _stat (const char *fname, struct stat *st)
+int __attribute__((weak))
+_stat (const char *fname, struct stat *st)
 {
   int file;
 
@@ -553,20 +572,19 @@ int _stat (const char *fname, struct stat *st)
   return 0;
 }
 
-int
-_link (const char *__path1 __attribute__ ((unused)),
-       const char *__path2 __attribute__ ((unused)))
+int __attribute__((weak))
+_link (const char *__path1 __attribute__ ((unused)), const char *__path2 __attribute__ ((unused)))
 {
   errno = ENOSYS;
   return -1;
 }
 
 int
-_unlink (const char *path __attribute__ ((unused)))
+_unlink (const char *path)
 {
 #ifdef ARM_RDI_MONITOR
   int block[2];
-  block[0] = (int) path;
+  block[0] = (int)path;
   block[1] = strlen(path);
   return wrap (do_AngelSWI (AngelSWI_Reason_Remove, block)) ? -1 : 0;
 #else
@@ -659,13 +677,13 @@ _system (const char *s)
      meaning to its return value.  Try to do something reasonable....  */
   if (!s)
     return 1;  /* maybe there is a shell available? we can hope. :-P */
-  block[0] = (int) s;
+  block[0] = (int)s;
   block[1] = strlen (s);
   e = wrap (do_AngelSWI (AngelSWI_Reason_System, block));
   if ((e >= 0) && (e < 256))
     {
       /* We have to convert e, an exit status to the encoded status of
-	 the command.  To avoid hard coding the exit status, we simply
+         the command.  To avoid hard coding the exit status, we simply
 	 loop until we find the right position.  */
       int exit_code;
 
-- 
2.17.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.