1 /* Extra sys/procfs.h definitions. S/390 version. 2 Copyright (C) 2000-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _SYS_PROCFS_H 20 # error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead." 21 #endif 22 23 #if __WORDSIZE == 64 24 25 /* Provide 32-bit variants so that BFD can read 32-bit 26 core files. */ 27 #define ELF_NGREG32 36 28 typedef unsigned int elf_greg_t32; 29 typedef elf_greg_t32 30 elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8))); 31 typedef elf_fpregset_t elf_fpregset_t32; 32 33 struct elf_prstatus32 34 { 35 struct elf_siginfo pr_info; /* Info associated with signal. */ 36 short int pr_cursig; /* Current signal. */ 37 unsigned int pr_sigpend; /* Set of pending signals. */ 38 unsigned int pr_sighold; /* Set of held signals. */ 39 __pid_t pr_pid; 40 __pid_t pr_ppid; 41 __pid_t pr_pgrp; 42 __pid_t pr_sid; 43 struct 44 { 45 int tv_sec, tv_usec; 46 } pr_utime, /* User time. */ 47 pr_stime, /* System time. */ 48 pr_cutime, /* Cumulative user time. */ 49 pr_cstime; /* Cumulative system time. */ 50 elf_gregset_t32 pr_reg; /* GP registers. */ 51 int pr_fpvalid; /* True if math copro being used. */ 52 }; 53 54 struct elf_prpsinfo32 55 { 56 char pr_state; /* Numeric process state. */ 57 char pr_sname; /* Char for pr_state. */ 58 char pr_zomb; /* Zombie. */ 59 char pr_nice; /* Nice val. */ 60 unsigned int pr_flag; /* Flags. */ 61 unsigned short int pr_uid; 62 unsigned short int pr_gid; 63 int pr_pid, pr_ppid, pr_pgrp, pr_sid; 64 /* Lots missing */ 65 char pr_fname[16]; /* Filename of executable. */ 66 char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ 67 }; 68 69 typedef elf_gregset_t32 prgregset32_t; 70 typedef elf_fpregset_t32 prfpregset32_t; 71 72 typedef struct elf_prstatus32 prstatus32_t; 73 typedef struct elf_prpsinfo32 prpsinfo32_t; 74 75 #endif 76