about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-01-17 05:24:52 +0000
committerUlrich Drepper <drepper@redhat.com>2000-01-17 05:24:52 +0000
commit313fed01112e9d6a9560ac07ab4b1a79d3209d45 (patch)
treee97d97bad169a93bf735cb477fb014d60e987d26 /sysdeps/unix/sysv/linux/sparc
parent2449110a8ae9b7fb65259560a96b6fafd14e791f (diff)
downloadglibc-313fed01112e9d6a9560ac07ab4b1a79d3209d45.tar.gz
glibc-313fed01112e9d6a9560ac07ab4b1a79d3209d45.tar.xz
glibc-313fed01112e9d6a9560ac07ab4b1a79d3209d45.zip
Update.
2000-01-12  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_32BITUIDS):
	Added for Linux 2.3.39+.

	* sysdeps/unix/sysv/linux/getresgid.c: Support 32bit UIDs and
	32bit GIDs.
	* sysdeps/unix/sysv/linux/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setegid.c: Likewise.

	* sysdeps/unix/sysv/linux/arm/chown.c: New file.
	* sysdeps/unix/sysv/linux/arm/fchown.c: New file.
	* sysdeps/unix/sysv/linux/arm/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getegid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/lchown.c: New file.
	* sysdeps/unix/sysv/linux/i386/fchown.c: New file.
	* sysdeps/unix/sysv/linux/i386/getegid.c: New file.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/getgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/getuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/lchown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/chown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/fchown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getegid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/lchown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/chown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c: New file.
	Based on a patch by Chris Wing <wingc@engin.umich.edu>.

2000-01-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sys/procfs.h: New file.

2000-01-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/backtrace.c: Include signal.h which
	sigcontextinfo.h headers are used to expect.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
	(register_dump): Fix a typo in the printout.
	Avoid using reg_window, so that asm/ptrace.h is not necessary.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
	(ADVANCE_STACK_FRAME): Likewise.

	* stdlib/longlong.h: Avoid using __sparc_v9__ ifdefs.
	* sysdeps/sparc/sparc32/bits/wordsize.h: Likewise.
	* sysdeps/sparc/sparc64/bits/wordsize.h: Likewise.

	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Include bits/wordsize.h
	to make it clear this file depends on __WORDSIZE.
	* sysdeps/unix/sysv/linux/ftruncate64.c (__have_no_truncate64):
	Renamed from have_no_truncate64.
	* sysdeps/unix/sysv/linux/truncate64.c (__have_no_truncate64):
	Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/fcntl.h1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/chown.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h11
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/procfs.h109
11 files changed, 126 insertions, 9 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
index 53f0d507e2..6a8e45375f 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -21,6 +21,7 @@
 #define _FCNTLBITS_H	1
 
 #include <sys/types.h>
+#include <bits/wordsize.h>
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/chown.c b/sysdeps/unix/sysv/linux/sparc/sparc32/chown.c
new file mode 100644
index 0000000000..1961622564
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/chown.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/m68k/chown.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c b/sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c
new file mode 100644
index 0000000000..3a69ecc9e7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fchown.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c
new file mode 100644
index 0000000000..37b4b4a530
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getegid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c
new file mode 100644
index 0000000000..ebcb555b5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/geteuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c
new file mode 100644
index 0000000000..0a4d6061f0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getgid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c
new file mode 100644
index 0000000000..d682c79a49
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c b/sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c
new file mode 100644
index 0000000000..c89de99ba2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lchown.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h b/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
index 15b4f76cc0..55d996ad1d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
@@ -1,7 +1,7 @@
 /* Dump registers.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
 
    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
@@ -20,7 +20,6 @@
 
 #include <sys/uio.h>
 #include <stdio-common/_itoa.h>
-#include <asm/ptrace.h>
 #include <bits/sigcontext.h>
 
 /* We will print the register dump in this format:
@@ -95,7 +94,7 @@ register_dump (int fd, SIGCONTEXT ctx)
   struct iovec iov[150];
   size_t nr = 0;
   int i;
-  struct reg_window *r = (struct reg_window *)
+  unsigned int *r = (unsigned int *)
     ctx->si_regs.u_regs[14];
 
 #define ADD_STRING(str) \
@@ -115,7 +114,7 @@ register_dump (int fd, SIGCONTEXT ctx)
   for (i = 1; i <= 15; i++)
     hexvalue (ctx->si_regs.u_regs[i], regs[3+i], 8);
   for (i = 0; i <= 15; i++)
-    hexvalue (r->locals[i], regs[19+i], 8);
+    hexvalue (r[i], regs[19+i], 8);
   hexvalue (ctx->si_mask, regs[35], 8);
 
   /* Generate the output.  */
@@ -252,7 +251,7 @@ register_dump (int fd, SIGCONTEXT ctx)
 	  ADD_MEM (fregs[36], 16);
 	  ADD_STRING ("  f38: ");
 	  ADD_MEM (fregs[38], 16);
-	  ADD_STRING (" f40: ");
+	  ADD_STRING ("  f40: ");
 	  ADD_MEM (fregs[40], 16);
 	  ADD_STRING ("\n f42: ");
 	  ADD_MEM (fregs[42], 16);
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
index 4e8fcd7871..d808b8c49e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
 
    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
@@ -21,6 +21,7 @@
 #define SIGCONTEXT_EXTRA_ARGS
 #define GET_PC(__ctx)	((void *) ((__ctx)->si_regs.pc))
 #define ADVANCE_STACK_FRAME(__next) \
-	((void *)&(((struct reg_window *) (__next))->ins[6]))
+	((void *) (((unsigned *)(__next))+14))
+
 #define GET_STACK(__ctx)	((void *) (__ctx)->si_regs.u_regs[14])
 #define GET_FRAME(__ctx)	ADVANCE_STACK_FRAME (GET_STACK(__ctx))
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
new file mode 100644
index 0000000000..d7d990ce8a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 1996, 1997, 1999, 2000 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_PROCFS_H
+#define _SYS_PROCFS_H	1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+   systems.  It provides a definition of the core file format for ELF
+   used on Linux.  */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+#include <asm/elf.h>
+#include <bits/wordsize.h>
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+  {
+    int si_signo;			/* Signal number.  */
+    int si_code;			/* Extra code.  */
+    int si_errno;			/* Errno.  */
+  };
+
+/* Definitions to generate Intel SVR4-like core files.  These mostly
+   have the same names as the SVR4 types with "elf_" tacked on the
+   front to prevent clashes with linux definitions, and the typedef
+   forms have been avoided.  This is mostly like the SVR4 structure,
+   but more Linuxy, with things that Linux does not support and which
+   gdb doesn't really use excluded.  Fields present but not used are
+   marked with "XXX".  */
+struct elf_prstatus
+  {
+    struct elf_siginfo pr_info;		/* Info associated with signal.  */
+    short int pr_cursig;		/* Current signal.  */
+    unsigned long int pr_sigpend;	/* Set of pending signals.  */
+    unsigned long int pr_sighold;	/* Set of held signals.  */
+    __pid_t pr_pid;
+    __pid_t pr_ppid;
+    __pid_t pr_pgrp;
+    __pid_t pr_sid;
+    struct timeval pr_utime;		/* User time.  */
+    struct timeval pr_stime;		/* System time.  */
+    struct timeval pr_cutime;		/* Cumulative user time.  */
+    struct timeval pr_cstime;		/* Cumulative system time.  */
+    elf_gregset_t pr_reg;		/* GP registers.  */
+    int pr_fpvalid;			/* True if math copro being used.  */
+  };
+
+
+#define ELF_PRARGSZ     (80)    /* Number of chars for args */
+
+struct elf_prpsinfo
+  {
+    char pr_state;			/* Numeric process state.  */
+    char pr_sname;			/* Char for pr_state.  */
+    char pr_zomb;			/* Zombie.  */
+    char pr_nice;			/* Nice val.  */
+    unsigned long int pr_flag;		/* Flags.  */
+#if __WORDSIZE == 64
+    unsigned int pr_uid;
+    unsigned int pr_gid;
+#else
+    unsigned short int pr_uid;
+    unsigned short int pr_gid;
+#endif
+    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+    /* Lots missing */
+    char pr_fname[16];			/* Filename of executable.  */
+    char pr_psargs[ELF_PRARGSZ];	/* Initial part of arg list.  */
+  };
+
+/* Addresses.  */
+typedef void *psaddr_t;
+
+/* Register sets.  Linux has different names.  */
+typedef gregset_t prgregset_t;
+typedef fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+   therefore habe only ine PID type.  */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif	/* sys/procfs.h */