Sun Jan 14 01:01:10 1996 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>

* sysdeps/mips/bytesex.h: Add default byte sex.  By Ralf Baechle.

	* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
	member of `struct timex' instead of `modes'.  From Andreas Schwab.

	* sysdeps/unix/sysv/linux/mknod.c: New file.  Generic C version.
	* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.

	* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
	[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
	[$(subdir) = misc] (headers): Append sys/mount.h.

	* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
	New files.  Implement system calls.
	* sysdeps/unix/sysv/linux/sys/mount.h: New header file.

	* sysdeps/unix/sysv/linux/ptrace.c: New file.  Wrapper around
	ptrace system call.
	* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.

	* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
	types for i386/Linux.
Sun Jan 14 01:01:10 1996  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/mips/bytesex.h: Add default byte sex.  By Ralf Baechle.

	* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
	member of `struct timex' instead of `modes'.  From Andreas Schwab.

	* sysdeps/unix/sysv/linux/mknod.c: New file.  Generic C version.
	* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.

	* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
	[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
	[$(subdir) = misc] (headers): Append sys/mount.h.

	* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
	New files.  Implement system calls.
	* sysdeps/unix/sysv/linux/sys/mount.h: New header file.

	* sysdeps/unix/sysv/linux/ptrace.c: New file.  Wrapper around
	ptrace system call.
	* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.

	* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
	types for i386/Linux.
This commit is contained in:
Roland McGrath 1996-01-17 17:13:48 +00:00
parent 6f0017d1cd
commit 9399579574
11 changed files with 292 additions and 21 deletions

View File

@ -29,6 +29,31 @@ Tue Jan 16 17:37:39 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* csu/Makefile [have-initfini=yes] (CPPFLAGS): Append -DHAVE_INITFINI. * csu/Makefile [have-initfini=yes] (CPPFLAGS): Append -DHAVE_INITFINI.
(initfini): Compile initfini.c with -fPIC. (initfini): Compile initfini.c with -fPIC.
Sun Jan 14 01:01:10 1996 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/mips/bytesex.h: Add default byte sex. By Ralf Baechle.
* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
member of `struct timex' instead of `modes'. From Andreas Schwab.
* sysdeps/unix/sysv/linux/mknod.c: New file. Generic C version.
* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.
* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
[$(subdir) = misc] (headers): Append sys/mount.h.
* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
New files. Implement system calls.
* sysdeps/unix/sysv/linux/sys/mount.h: New header file.
* sysdeps/unix/sysv/linux/ptrace.c: New file. Wrapper around
ptrace system call.
* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.
* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
types for i386/Linux.
Sun Jan 14 17:51:09 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> Sun Jan 14 17:51:09 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* MakeTAGS (all-sources, all-headers): Always search the * MakeTAGS (all-sources, all-headers): Always search the

4
sysdeps/mips/bytesex.h Normal file
View File

@ -0,0 +1,4 @@
/* The MIPS architecture has selectable endianness.
This file is for a machine using big-endian mode. */
#define __BYTE_ORDER __BIG_ENDIAN

View File

@ -1,9 +1,10 @@
ifeq ($(subdir), io) ifeq ($(subdir), io)
sysdep_routines := $(sysdep_routines) fxstat lxstat xstat sysdep_routines += fxstat lxstat xstat
endif endif
ifeq ($(subdir), misc) ifeq ($(subdir), misc)
sysdep_routines := $(sysdep_routines) xmknod sysdep_routines += xmknod mount umount s_ptrace
headers += sys/mount.h
endif endif
#ifeq ($(subdir), posix) #ifeq ($(subdir), posix)
@ -28,3 +29,7 @@ headers += nfs/nfs.h
endif endif
rtld-installed-name = ld-gnu.so.1 rtld-installed-name = ld-gnu.so.1
# Don't compile the ctype glue code, since there is no old non-GNU C library.
inhibit-glue = yes

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995 Free Software Foundation, Inc. /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or 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 modify it under the terms of the GNU Library General Public License as
@ -23,6 +23,10 @@ Boston, MA 02111-1307, USA. */
#define MAX_SEC (LONG_MAX / 1000000L - 2) #define MAX_SEC (LONG_MAX / 1000000L - 2)
#define MIN_SEC (LONG_MIN / 1000000L + 2) #define MIN_SEC (LONG_MIN / 1000000L + 2)
#ifndef MOD_OFFSET
#define modes mode
#endif
int int
__adjtime (itv, otv) __adjtime (itv, otv)
const struct timeval *itv; const struct timeval *itv;

View File

@ -0,0 +1,88 @@
/* Copyright (C) 1991, 92, 94, 95, 96 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., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#ifndef _GNU_TYPES_H
#define _GNU_TYPES_H 1
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
#ifdef __GNUC__
typedef unsigned long long int __u_quad_t;
typedef long long int __quad_t;
typedef __quad_t *__qaddr_t;
#else
typedef struct
{
long val[2];
} __quad_t;
typedef struct
{
__u_long val[2];
} __u_quad_t;
#endif
typedef unsigned short int __dev_t; /* Type of device numbers. */
typedef unsigned short int __uid_t; /* Type of user identifications. */
typedef unsigned short int __gid_t; /* Type of group identifications. */
typedef unsigned long int __ino_t; /* Type of file serial numbers. */
typedef unsigned short int __mode_t; /* Type of file attribute bitmasks. */
typedef unsigned short int __nlink_t; /* Type of file link counts. */
typedef long int __off_t; /* Type of file sizes and offsets. */
typedef int __pid_t; /* Type of process identifications. */
typedef int __ssize_t; /* Type of a byte count, or error. */
#ifdef __GNUC__
typedef long long int __fsid_t; /* Type of file system IDs. */
#else
typedef struct { /* Type of file system IDs. */
long val[2];
} __fsid_t;
#endif
/* Everythin' else. */
typedef int __daddr_t; /* The type of a disk address. */
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
/* fd_set for select. */
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (sizeof (unsigned long int) * 8)
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) (1 << ((d) % __NFDBITS))
typedef struct
{
/* Some braindead old software uses this member name. */
unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
} __fd_set;
/* This line MUST be split! Otherwise m4 will not change it. */
#define __FD_ZERO(set) \
((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_ISSET(d, set) ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
#endif /* gnu/types.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995 Free Software Foundation, Inc. /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -16,24 +16,15 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave, not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */ Cambridge, MA 02139, USA. */
#include <sysdep.h> #include <sys/stat.h>
/* In Linux the `mknod' call is actually done by a emulation of the /* In Linux the `mknod' call is actually done by emulating a `xmknod'
`xmknod' system call, which takes an additional first argument system call, which takes an additional first argument. */
giving a version number for the interface. This macro gives the
Linux version number that corresponds to the modern interface. */
#define _MKNOD_VER 1
ENTRY (__mknod) int
movl 12(%esp), %edx __mknod (const char *path, mode_t mode, dev_t dev)
movl 8(%esp), %ecx {
movl 4(%esp), %eax return __xmknod (LINUX_MKNOD_VERSION, path, mode, &dev);
pushl %edx }
pushl %ecx
pushl %eax
pushl $_MKNOD_VER /* Push extra first arg to syscall. */
call JUMPTARGET(__xmknod)
addl $16, %esp /* Correct version parameter offset. */
ret
weak_alias (__mknod, mknod) weak_alias (__mknod, mknod)

View File

@ -0,0 +1,24 @@
/* Copyright (C) 1991, 1992, 1995 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>
SYSCALL__ (mount, 5)
ret
weak_alias (__mount, mount)

View File

@ -0,0 +1,45 @@
/* Copyright (C) 1995, 1996 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 <errno.h>
#include <sys/ptrace.h>
#include <sys/syscall.h>
int
ptrace (int request, int pid, int addr, int data)
{
long int ret;
long int res;
if (request > 0 && request < 4)
(long int *) data = &ret;
res = __syscall_ptrace (request, pid, addr, data);
if (res >= 0)
{
if (request > 0 && request < 4)
{
errno = 0;
return (ret);
}
return (int) res;
}
errno = -res;
return -1;
}

View File

@ -0,0 +1,22 @@
/* Copyright (C) 1995, 1996 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., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
PSEUDO (__syscall_ptrace, ptrace, 4)
ret

View File

@ -0,0 +1,39 @@
/* Header file for mounting/unmount Linux filesystems.
Copyright (C) 1996 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. */
#ifndef _SYS_MOUNT_H
#define _SYS_MOUNT_H
#include <features.h>
__BEGIN_DECLS
/* Mount a filesystem. */
extern int mount __P ((__const char *__special_file,
__const char *__dir,
__const char *__fstype,
unsigned long int __rwflag,
__const void *__data));
/* Unmount a filesystem. */
extern int umount __P ((__const char *__special_file));
__END_DECLS
#endif /* _SYS_MOUNT_H */

View File

@ -0,0 +1,24 @@
/* Copyright (C) 1991, 1992, 1995 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>
SYSCALL__ (umount, 1)
ret
weak_alias (__umount, umount)