about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/gethostid.c2
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h106
2 files changed, 106 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
index a1d141b142..ca2669d3e6 100644
--- a/sysdeps/unix/sysv/linux/gethostid.c
+++ b/sysdeps/unix/sysv/linux/gethostid.c
@@ -30,7 +30,7 @@ sethostid (id)
   ssize_t written;
 
   /* Test for appropriate rights to set host ID.  */
-  if (geteuid () || getuid ())
+  if (__libc_enable_secure)
     {
       __set_errno (EPERM);
       return -1;
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index 9c1079d7b9..d4a38980c3 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -1 +1,105 @@
-#include <linux/elfcore.h>
+/* 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_PROCFS_H
+
+#define _SYS_PROCFS_H	1
+#include <features.h>
+
+/* 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 <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <asm/elf.h>
+
+struct elf_siginfo
+{
+  int si_signo;				/* signal number */
+  int si_code;				/* extra code */
+  int si_errno;				/* errno */
+};
+
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
+
+/* 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
+{
+#if 0
+  long pr_flags;			/* XXX Process flags */
+  short pr_why;				/* XXX Reason for process halt */
+  short pr_what;			/* XXX More detailed reason */
+#endif
+  struct elf_siginfo pr_info;		/* Info associated with signal */
+  short pr_cursig;			/* Current signal */
+  sigset_t pr_sigpend;			/* Set of pending signals */
+  sigset_t pr_sighold;			/* Set of held signals */
+#if 0
+  struct sigaltstack pr_altstack;	/* Alternate stack info */
+  struct sigaction pr_action;		/* Signal action for current sig */
+#endif
+  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 */
+#if 0
+  long pr_instr;			/* Current instruction */
+#endif
+  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 pr_flag;		/* flags */
+  uid_t pr_uid;
+  gid_t pr_gid;
+  pid_t 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 struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+
+#endif	/* sys/procfs.h */