Ядро Linux в комментариях

       

Include/linux/elfcore.h


14741 #ifndef _LINUX_ELFCORE_H 14742 #define _LINUX_ELFCORE_H 14743 14744 #include <linux/types.h> 14745 #include <linux/signal.h> 14746 #include <linux/time.h> 14747 #include <linux/ptrace.h> 14748 #include <linux/user.h> 14749 14750 struct elf_siginfo 14751 { 14752 int si_signo; /* signal number */ 14753 int si_code; /* extra code */ 14754 int si_errno; /* errno */ 14755 }; 14756 14757 #include <asm/elf.h> 14758 14759 #ifndef __KERNEL__ 14760 typedef elf_greg_t greg_t; 14761 typedef elf_gregset_t gregset_t; 14762 typedef elf_fpregset_t fpregset_t; 14763 #define NGREG ELF_NGREG 14764 #endif 14765 14766 /* Definitions to generate Intel SVR4-like core files. 14767 * These mostly have the same names as the SVR4 types 14768 * with "elf_" tacked on the front to prevent clashes 14769 * with linux definitions, and the typedef forms have 14770 * been avoided. This is mostly like the SVR4 structure, 14771 * but more Linuxy, with things that Linux does not 14772 * support and which gdb doesn't really use excluded. 14773 * Fields present but not used are marked with "XXX". */ 14774 struct elf_prstatus 14775 { 14776 #if 0 14777 long pr_flags; /* XXX Process flags */ 14778 short pr_why; /* XXX Reason for process halt */ 14779 short pr_what; /* XXX More detailed reason */ 14780 #endif 14781 struct elf_siginfo pr_info; /* Info associated with 14782 * signal */ 14783 short pr_cursig; /* Current signal */ 14784 unsigned long pr_sigpend; /* Set of pending 14785 * signals */ 14786 unsigned long pr_sighold; /* Set of held signals 14787 */ 14788 #if 0 14789 struct sigaltstack pr_altstack; /* Alternate stack info 14790 */ 14791 struct sigaction pr_action; /* Signal action for 14792 * current sig */ 14793 #endif 14794 pid_t pr_pid; 14795 pid_t pr_ppid; 14796 pid_t pr_pgrp; 14797 pid_t pr_sid; 14798 struct timeval pr_utime; /* User time */ 14799 struct timeval pr_stime; /* System time */ 14800 struct timeval pr_cutime; /* Cumulative user time */ 14801 struct timeval pr_cstime; /* Cumulative system time */ 14802 #if 0 14803 long pr_instr; /* Current instruction */ 14804 #endif 14805 elf_gregset_t pr_reg; /* GP registers */ 14806 int pr_fpvalid; /* True if math co-processor 14807 * being used. */ 14808 }; 14809 14810 #define ELF_PRARGSZ (80) /* Number of chars for 14811 * args */ 14812 14813 struct elf_prpsinfo 14814 { 14815 char pr_state; /* numeric process state */ 14816 char pr_sname; /* char for pr_state */ 14817 char pr_zomb; /* zombie */ 14818 char pr_nice; /* nice val */ 14819 unsigned long pr_flag; /* flags */ 14820 uid_t pr_uid; 14821 gid_t pr_gid; 14822 pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; 14823 /* Lots missing */ 14824 char pr_fname[16]; /* filename of executable */ 14825 char pr_psargs[ELF_PRARGSZ]; /* initial part of 14826 * arg list */ 14827 }; 14828 14829 #ifndef __KERNEL__ 14830 typedef struct elf_prstatus prstatus_t; 14831 typedef struct elf_prpsinfo prpsinfo_t; 14832 #define PRARGSZ ELF_PRARGSZ 14833 #endif 14834 14835 #endif /* _LINUX_ELFCORE_H */



Содержание раздела