1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
/*
* zgetdump - Tool for copying and converting System z dumps
*
* ELF core dump format definitions
*
* Copyright IBM Corp. 2001, 2017
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#ifndef DF_ELF_H
#define DF_ELF_H
#include <elf.h>
#include <linux/types.h>
#include "dfo.h"
#include "zg.h"
/*
* S390 CPU timer note (u64)
*/
#ifndef NT_S390_TIMER
#define NT_S390_TIMER 0x301
#endif
/*
* S390 TOD clock comparator note (u64)
*/
#ifndef NT_S390_TODCMP
#define NT_S390_TODCMP 0x302
#endif
/*
* S390 TOD programmable register note (u32)
*/
#ifndef NT_S390_TODPREG
#define NT_S390_TODPREG 0x303
#endif
/*
* S390 control registers note (16 * u32)
*/
#ifndef NT_S390_CTRS
#define NT_S390_CTRS 0x304
#endif
/*
* S390 prefix note (u32)
*/
#ifndef NT_S390_PREFIX
#define NT_S390_PREFIX 0x305
#endif
/*
* S390 vector registers 0-15 upper half note (16 * u64)
*/
#ifndef NT_S390_VXRS_LOW
#define NT_S390_VXRS_LOW 0x309
#endif
/*
* S390 vector registers 16-31 note (16 * u128)
*/
#ifndef NT_S390_VXRS_HIGH
#define NT_S390_VXRS_HIGH 0x30a
#endif
/*
* prstatus ELF Note
*/
struct nt_prstatus_64 {
u8 pad1[32];
u32 pr_pid;
u8 pad2[76];
u64 psw[2];
u64 gprs[16];
u32 acrs[16];
u64 orig_gpr2;
u32 pr_fpvalid;
u8 pad3[4];
} __attribute__ ((packed));
/*
* fpregset ELF Note
*/
struct nt_fpregset_64 {
u32 fpc;
u32 pad;
u64 fprs[16];
} __attribute__ ((packed));
/*
* prpsinfo ELF Note
*/
struct nt_prpsinfo_64 {
char pr_state;
char pr_sname;
char pr_zomb;
char pr_nice;
u64 pr_flag;
u32 pr_uid;
u32 pr_gid;
u32 pr_pid, pr_ppid, pr_pgrp, pr_sid;
char pr_fname[16];
char pr_psargs[80];
};
static inline void df_elf_ensure_s390x(void)
{
#ifndef __s390x__
ERR_EXIT("The ELF dump format is only supported on s390x (64 bit)");
#endif
}
#endif /* DF_ELF_H */
|