about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-05-21 02:15:01 +0000
committerUlrich Drepper <drepper@redhat.com>2002-05-21 02:15:01 +0000
commitcf29934141e8e27bd66c9a7fe4f4c217878365a7 (patch)
treeb1c57ba760d4820a1e1d9c76c3e9b48f627d60a3 /sysdeps/unix/sysv/linux/sparc/sys/procfs.h
parent509bd8e35ad842944074e43cd2cc22381ee13f5b (diff)
downloadglibc-cf29934141e8e27bd66c9a7fe4f4c217878365a7.tar.gz
glibc-cf29934141e8e27bd66c9a7fe4f4c217878365a7.tar.xz
glibc-cf29934141e8e27bd66c9a7fe4f4c217878365a7.zip
Update.
2002-05-17  David S. Miller  <davem@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/fork.S: Define _internal aliases.

2002-05-16  David S. Miller  <davem@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (LOAD_PIC_REG): Define.
	(elf_machine_dynamic): Use it to force PIC register to be loaded.
	(elf_machine_load_address): Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Mirror sparc32 changes.

	* sysdeps/sparc/sparc64/strncmp.S: When second argument pointer
	is unaligned, do not forget to fully initialize %g1 magic value.

	* sysdeps/unix/sysv/linux/sparc/sys/procfs.h: Fix 64-bit elf
	register definitions and provide 32-bit variants of structures
	during 64-bit builds.

	* soft-fp/op-1.h (_FP_FRAC_CLEAR_OVERP_1): Define.
	* soft-fp/op-2.h (_FP_FRAC_CLEAR_OVERP_2): Define.
	* soft-fp/op-4.h (_FP_FRAC_CLEAR_OVERP_4): Define.
	* soft-fp/op-common.h (_FP_PACK_CANONICAL): After rounding, if
	_FP_FRAC_OVERP_X is set, use _FP_FRAC_CLEAR_OVERP_X to clear it.
	(_FP_FROM_INT): Perform right shifts on unsigned integer type.
	Do not clear implicit one bit here, it must be done post-rounding.
	Only pad to the left using left shift if value uses less than the
	available fractional bits.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sys/procfs.h')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/procfs.h69
1 files changed, 68 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
index e5d35f524a..2827b1ec33 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
@@ -35,7 +35,7 @@ __BEGIN_DECLS
 
 #if __WORDSIZE == 64
 
-#define ELF_NGREG		20
+#define ELF_NGREG		36
 
 typedef struct
   {
@@ -139,6 +139,73 @@ typedef __pid_t lwpid_t;
 typedef struct elf_prstatus prstatus_t;
 typedef struct elf_prpsinfo prpsinfo_t;
 
+#if __WORDSIZE == 64
+
+/* Provide 32-bit variants so that BFD can read 32-bit
+   core files.  */
+#define ELF_NGREG32		38
+typedef struct
+  {
+    union
+      {
+	unsigned int	pr_regs[32];
+	double		pr_dregs[16];
+      }			pr_fr;
+    unsigned int	__unused;
+    unsigned int	pr_fsr;
+    unsigned char	pr_qcnt;
+    unsigned char	pr_q_entrysize;
+    unsigned char	pr_en;
+    unsigned int	pr_q[64];
+  } elf_fpregset_t32;
+
+typedef unsigned int elf_greg_t32;
+typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32];
+
+struct elf_prstatus32
+  {
+    struct elf_siginfo pr_info;		/* Info associated with signal.  */
+    short int pr_cursig;		/* Current signal.  */
+    unsigned int pr_sigpend;	/* Set of pending signals.  */
+    unsigned int pr_sighold;	/* Set of held signals.  */
+    __pid_t pr_pid;
+    __pid_t pr_ppid;
+    __pid_t pr_pgrp;
+    __pid_t pr_sid;
+    struct
+      {
+	int tv_sec, tv_usec;
+      } pr_utime,			/* User time.  */
+        pr_stime,			/* System time.  */
+        pr_cutime,			/* Cumulative user time.  */
+        pr_cstime;			/* Cumulative system time.  */
+    elf_gregset_t32 pr_reg;		/* GP registers.  */
+    int pr_fpvalid;			/* True if math copro being used.  */
+  };
+
+struct elf_prpsinfo32
+  {
+    char pr_state;			/* Numeric process state.  */
+    char pr_sname;			/* Char for pr_state.  */
+    char pr_zomb;			/* Zombie.  */
+    char pr_nice;			/* Nice val.  */
+    unsigned int pr_flag;		/* Flags.  */
+    unsigned short int pr_uid;
+    unsigned short int pr_gid;
+    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.  */
+  };
+
+typedef elf_gregset_t32 prgregset32_t;
+typedef elf_fpregset_t32 prfpregset32_t;
+
+typedef struct elf_prstatus32 prstatus32_t;
+typedef struct elf_prpsinfo32 prpsinfo32_t;
+
+#endif  /* sparc64 */
+
 __END_DECLS
 
 #endif	/* sys/procfs.h */