67 lines
1.6 KiB
Rust
67 lines
1.6 KiB
Rust
#[cfg(target_arch = "aarch64")]
|
|
use crate::header::arch_aarch64_user::{elf_fpregset_t, elf_gregset_t};
|
|
#[cfg(target_arch = "riscv64")]
|
|
use crate::header::arch_riscv64_user::{elf_fpregset_t, elf_gregset_t};
|
|
#[cfg(target_arch = "x86_64")]
|
|
use crate::header::arch_x64_user::{elf_fpregset_t, elf_gregset_t};
|
|
use crate::platform::types::{
|
|
c_char, c_int, c_long, c_short, c_uint, c_ulong, c_void, pid_t, size_t,
|
|
};
|
|
|
|
pub const ELF_PRARGSZ: size_t = 80;
|
|
|
|
#[repr(C)]
|
|
pub struct elf_siginfo {
|
|
pub si_signo: c_int,
|
|
pub si_code: c_int,
|
|
pub si_errno: c_int,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct time {
|
|
pub tv_sec: c_long,
|
|
pub tv_usec: c_long,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct elf_prstatus {
|
|
pub pr_info: elf_siginfo,
|
|
pub pr_cursig: c_short,
|
|
pub pr_sigpend: c_ulong,
|
|
pub pr_sighold: c_ulong,
|
|
pub pr_pid: pid_t,
|
|
pub pr_ppid: pid_t,
|
|
pub pr_pgrp: pid_t,
|
|
pub pr_sid: pid_t,
|
|
pub pr_utime: time,
|
|
pub pr_stime: time,
|
|
pub pr_cutime: time,
|
|
pub pr_cstime: time,
|
|
pub pr_reg: elf_gregset_t,
|
|
pub pr_fpvalid: c_int,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct elf_prpsinfo {
|
|
pub pr_state: c_char,
|
|
pub pr_sname: c_char,
|
|
pub pr_zomb: c_char,
|
|
pub pr_nice: c_char,
|
|
pub pr_flag: c_uint,
|
|
pub pr_uid: c_uint,
|
|
pub pr_gid: c_uint,
|
|
pub pr_pid: c_int,
|
|
pub pr_ppid: c_int,
|
|
pub pr_pgrp: c_int,
|
|
pub pr_sid: c_int,
|
|
pub pr_fname: [c_char; 16],
|
|
pub pr_psargs: [c_char; ELF_PRARGSZ],
|
|
}
|
|
|
|
pub type psaddr_t = *mut c_void;
|
|
pub type prgregset_t = *mut elf_gregset_t;
|
|
pub type prfpregset_t = elf_fpregset_t;
|
|
pub type lwpid_t = pid_t;
|
|
pub type prstatus_t = elf_prstatus;
|
|
pub type prpsinfo_t = elf_prpsinfo;
|