diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/sys/procfs.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/procfs.h | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h index 6af44c02ca..759570c595 100644 --- a/sysdeps/unix/sysv/linux/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/sys/procfs.h @@ -1,4 +1,6 @@ -/* Copyright (C) 1996-2018 Free Software Foundation, Inc. +/* Definitions for core files and libthread_db. Generic Linux version. + Copyright (C) 1996-2018 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 @@ -18,20 +20,28 @@ #ifndef _SYS_PROCFS_H #define _SYS_PROCFS_H 1 -/* This is somehow modelled after the file of the same name on SysVr4 +/* This is somewhat modelled after the file of the same name on SVR4 systems. It provides a definition of the core file format for ELF - used on Linux. */ + used on Linux. It doesn't have anything to do with the /proc file + system, even though Linux has one. + + Anyway, the whole purpose of this file is for GDB and GDB only. + Don't read too much into it. Don't use it for anything other than + GDB unless you know what you are doing. */ #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> + +/* bits/procfs.h, provided by each architecture, must define + elf_gregset_t, elf_fpregset_t and any other architecture-specific + types needed. */ +#include <bits/procfs.h> __BEGIN_DECLS +/* Signal info. */ struct elf_siginfo { int si_signo; /* Signal number. */ @@ -41,26 +51,17 @@ struct elf_siginfo /* 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 + 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". */ + GDB doesn't really use excluded. */ + struct elf_prstatus { -#if 0 - long int pr_flags; /* XXX Process flags. */ - short int pr_why; /* XXX Reason for process halt. */ - short int pr_what; /* XXX More detailed reason. */ -#endif 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. */ -#if 0 - stack_t 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; @@ -69,15 +70,12 @@ struct elf_prstatus struct timeval pr_stime; /* System time. */ struct timeval pr_cutime; /* Cumulative user time. */ struct timeval pr_cstime; /* Cumulative system time. */ -#if 0 - long int 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 */ +#define ELF_PRARGSZ (80) /* Number of chars for args. */ struct elf_prpsinfo { @@ -94,21 +92,25 @@ struct elf_prpsinfo char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ }; +/* The rest of this file provides the types for emulation of the + Solaris <proc_service.h> interfaces that should be implemented by + users of libthread_db. */ + /* Addresses. */ typedef void *psaddr_t; /* Register sets. Linux has different names. */ -typedef gregset_t prgregset_t; -typedef fpregset_t prfpregset_t; +typedef elf_gregset_t prgregset_t; +typedef elf_fpregset_t prfpregset_t; /* We don't have any differences between processes and threads, - therefore habe only ine PID type. */ + therefore have only one PID type. */ typedef __pid_t lwpid_t; - +/* Process status and info. In the end we do provide typedefs for them. */ typedef struct elf_prstatus prstatus_t; typedef struct elf_prpsinfo prpsinfo_t; __END_DECLS -#endif /* sys/procfs.h */ +#endif /* sys/procfs.h. */ |