diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | inet/ruserpass.c | 20 | ||||
-rw-r--r-- | misc/getttyent.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/syscall.S | 47 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/syscalls.list | 1 |
5 files changed, 28 insertions, 57 deletions
diff --git a/ChangeLog b/ChangeLog index 21297f2958..a6f2797687 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +1998-05-23 Philip Blundell <Philip.Blundell@pobox.com> + + * sysdeps/unix/sysv/linux/arm/syscalls.list: Add `syscall'. + * sysdeps/unix/sysv/linux/arm/syscall.S: Deleted. + +1998-07-05 Ulrich Drepper <drepper@cygnus.com> + + * misc/getttyent.c (getttyent): Explicitly lock the FILE and use + _unlocked functions. + + * inet/ruserpass.c (ruserpass): Use _unlocked functions since this + is a private FILE. + 1998-07-04 17:11 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> * csu/Makefile: Build crt files in lib pass. diff --git a/inet/ruserpass.c b/inet/ruserpass.c index 421bfc5e2d..9c0905132e 100644 --- a/inet/ruserpass.c +++ b/inet/ruserpass.c @@ -187,7 +187,8 @@ next: (void) fclose(cfile); return (0); } - while ((c=getc(cfile)) != EOF && c == ' ' || c == '\t'); + while ((c=getc_unlocked(cfile)) != EOF && c == ' ' + || c == '\t'); if (c == EOF || c == '\n') { printf("Missing macdef name argument.\n"); goto bad; @@ -198,7 +199,7 @@ next: } tmp = macros[macnum].mac_name; *tmp++ = c; - for (i=0; i < 8 && (c=getc(cfile)) != EOF && + for (i=0; i < 8 && (c=getc_unlocked(cfile)) != EOF && !isspace(c); ++i) { *tmp++ = c; } @@ -208,7 +209,8 @@ next: } *tmp = '\0'; if (c != '\n') { - while ((c=getc(cfile)) != EOF && c != '\n'); + while ((c=getc_unlocked(cfile)) != EOF + && c != '\n'); } if (c == EOF) { printf("Macro definition missing null line terminator.\n"); @@ -222,7 +224,7 @@ next: } tmp = macros[macnum].mac_start; while (tmp != macbuf + 4096) { - if ((c=getc(cfile)) == EOF) { + if ((c=getc_unlocked(cfile)) == EOF) { printf("Macro definition missing null line terminator.\n"); goto bad; } @@ -265,24 +267,24 @@ token() if (feof(cfile) || ferror(cfile)) return (0); - while ((c = getc(cfile)) != EOF && + while ((c = getc_unlocked(cfile)) != EOF && (c == '\n' || c == '\t' || c == ' ' || c == ',')) continue; if (c == EOF) return (0); cp = tokval; if (c == '"') { - while ((c = getc(cfile)) != EOF && c != '"') { + while ((c = getc_unlocked(cfile)) != EOF && c != '"') { if (c == '\\') - c = getc(cfile); + c = getc_unlocked(cfile); *cp++ = c; } } else { *cp++ = c; - while ((c = getc(cfile)) != EOF + while ((c = getc_unlocked(cfile)) != EOF && c != '\n' && c != '\t' && c != ' ' && c != ',') { if (c == '\\') - c = getc(cfile); + c = getc_unlocked(cfile); *cp++ = c; } } diff --git a/misc/getttyent.c b/misc/getttyent.c index 6743ac5d7d..f474cdcacf 100644 --- a/misc/getttyent.c +++ b/misc/getttyent.c @@ -71,12 +71,13 @@ getttyent() if (!tf && !setttyent()) return (NULL); + flockfile (tf); for (;;) { if (!fgets(p = line, sizeof(line), tf)) return (NULL); /* skip lines that are too big */ if (!index(p, '\n')) { - while ((c = getc(tf)) != '\n' && c != EOF) + while ((c = getc_unlocked(tf)) != '\n' && c != EOF) ; continue; } @@ -85,6 +86,7 @@ getttyent() if (*p && *p != '#') break; } + funlockfile(tf); zapchar = 0; tty.ty_name = p; diff --git a/sysdeps/unix/sysv/linux/arm/syscall.S b/sysdeps/unix/sysv/linux/arm/syscall.S deleted file mode 100644 index bc2bc7dbaa..0000000000 --- a/sysdeps/unix/sysv/linux/arm/syscall.S +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <sysdep.h> - -/* Please consult the file sysdeps/unix/sysv/linux/arm/sysdep.h for - more information about the value -4095 used below.*/ - - .text -ENTRY (syscall) - - /* Normally encoding the system call number in the instruction is - good. But we pay the price here. */ - - sub sp, sp, $0xc @ get 3 words on the stack - orr r0, r0, $0xef000000 @ make up a SWI instruction - orr r0, r0, $SWI_BASE - str r0, [sp] - ldr r0, _reti - str r0, [sp, $4] - adr r0, _ret - str r0, [sp, $8] - mov r0, r1 - mov r1, r2 - mov r2, r3 - mov pc, sp -_ret: add sp, sp, $0xc - RETINSTR(mov, pc, r14) - -_reti: .word 0xe51ff004 @ ldr pc, [pc, $4] - -PSEUDO_END (syscall) diff --git a/sysdeps/unix/sysv/linux/arm/syscalls.list b/sysdeps/unix/sysv/linux/arm/syscalls.list index 392a257194..a3ecdd7d73 100644 --- a/sysdeps/unix/sysv/linux/arm/syscalls.list +++ b/sysdeps/unix/sysv/linux/arm/syscalls.list @@ -4,3 +4,4 @@ s_getgroups getgroups getgroups 2 __syscall_getgroups s_llseek llseek _llseek 5 __sys_llseek s_setgroups setgroups setgroups 2 __syscall_setgroups vm86 - vm86 1 __vm86 vm86 +syscall - syscall 5 syscall |