#[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;