#ifndef _PCORE_LINUX_H
#define _PCORE_LINUX_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct lx_prpsinfo32 {
uint8_t pr_state;
int8_t pr_sname;
uint8_t pr_zomb;
int8_t pr_nice;
uint32_t pr_flag;
uint16_t pr_uid;
uint16_t pr_gid;
int32_t pr_pid;
int32_t pr_ppid;
int32_t pr_pgrp;
int32_t pr_sid;
char pr_fname[16];
char pr_psargs[80];
} lx_prpsinfo32_t;
typedef struct lx_prpsinfo64 {
uint8_t pr_state;
int8_t pr_sname;
uint8_t pr_zomb;
int8_t pr_nice;
uint64_t pr_flag;
uint32_t pr_uid;
uint32_t pr_gid;
int32_t pr_pid;
int32_t pr_ppid;
int32_t pr_pgrp;
int32_t pr_sid;
char pr_fname[16];
char pr_psargs[80];
} lx_prpsinfo64_t;
typedef struct lx_amd64_regs {
uint64_t lxr_r15;
uint64_t lxr_r14;
uint64_t lxr_r13;
uint64_t lxr_r12;
uint64_t lxr_rbp;
uint64_t lxr_rbx;
uint64_t lxr_r11;
uint64_t lxr_r10;
uint64_t lxr_r9;
uint64_t lxr_r8;
uint64_t lxr_rax;
uint64_t lxr_rcx;
uint64_t lxr_rdx;
uint64_t lxr_rsi;
uint64_t lxr_rdi;
uint64_t lxr_orig_rax;
uint64_t lxr_rip;
uint64_t lxr_cs;
uint64_t lxr_eflags;
uint64_t lxr_rsp;
uint64_t lxr_ss;
uint64_t lxr_fs_base;
uint64_t lxr_gs_base;
uint64_t lxr_ds;
uint64_t lxr_es;
uint64_t lxr_fs;
uint64_t lxr_gs;
} lx_amd64_regs_t;
typedef struct lx_ia32_regs {
uint32_t lxr_bx;
uint32_t lxr_cx;
uint32_t lxr_dx;
uint32_t lxr_si;
uint32_t lxr_di;
uint32_t lxr_bp;
uint32_t lxr_ax;
uint32_t lxr_ds;
uint32_t lxr_es;
uint32_t lxr_fs;
uint32_t lxr_gs;
uint32_t lxr_orig_ax;
uint32_t lxr_ip;
uint32_t lxr_cs;
uint32_t lxr_flags;
uint32_t lxr_sp;
uint32_t lxr_ss;
} lx_ia32_regs_t;
typedef struct lx_elf_siginfo {
int32_t si_signo;
int32_t si_code;
int32_t si_errno;
} lx_elf_siginfo_t;
typedef struct lx_elf_timeval32 {
int32_t tv_sec;
int32_t tv_usec;
} lx_elf_timeval32_t;
typedef struct lx_elf_timeval64 {
int64_t tv_sec;
int64_t tv_usec;
} lx_elf_timeval64_t;
typedef struct lx_prstatus32 {
lx_elf_siginfo_t pr_info;
uint16_t pr_cursig;
uint32_t pr_sigpend;
uint32_t pr_sighold;
int32_t pr_pid;
int32_t pr_ppid;
int32_t pr_pgrp;
int32_t pr_sid;
lx_elf_timeval32_t pr_utime;
lx_elf_timeval32_t pr_stime;
lx_elf_timeval32_t pr_cutime;
lx_elf_timeval32_t pr_cstime;
lx_ia32_regs_t pr_reg;
uint32_t pr_fpvalid;
} lx_prstatus32_t;
typedef struct lx_prstatus64 {
lx_elf_siginfo_t pr_info;
uint16_t pr_cursig;
uint64_t pr_sigpend;
uint64_t pr_sighold;
int32_t pr_pid;
int32_t pr_ppid;
int32_t pr_pgrp;
int32_t pr_sid;
lx_elf_timeval64_t pr_utime;
lx_elf_timeval64_t pr_stime;
lx_elf_timeval64_t pr_cutime;
lx_elf_timeval64_t pr_cstime;
lx_amd64_regs_t pr_reg;
uint32_t pr_fpvalid;
} lx_prstatus64_t;
#define LTIME_TO_TIMESPEC(dst, src) \
(dst).tv_sec = (src).tv_sec; \
(dst).tv_nsec = (src).tv_usec * 1000;
#ifdef __cplusplus
}
#endif
#endif