struct rlimit {
            rlim_t rlim_cur;
            rlim_t rlim_max;
};

struct timeval {
                __int32_t:32;
                time_t tv_sec;
                long tv_usec;
};

struct sigvec_s {
        mrlock_t sv_lock;
        uint sv_flags;
        sigpend_t sv_sigpend;
        k_sigset_t sv_sigign;
        k_sigset_t sv_sigcatch;
        k_sigset_t sv_sigrestart;
        k_sigset_t sv_signodefer;
        k_sigset_t sv_sigresethand;
        k_sigset_t sv_sainfo;
        k_sigset_t sv_sighold;
        void (* sv_hndlr[64])();
        k_sigset_t sv_sigmasks[64];
        int sv_pending;
};

struct proc {
    proc_proxy_t p_proxy;
    uint p_flag;
    char p_acflag;
    char p_stat;
    pid_t p_pgid;
    pid_t p_pid;
    pid_t p_ppid;
    pid_t p_sid;
    struct vnode* p_script;
    struct fdt* p_fdt;
    k_sigset_t p_sigtrace;
    struct sigvec_s p_sigvec;
    struct child_pidlist* p_childpids;
    mutex_t p_childlock;
    sv_t p_wait;
    sv_t p_wexit;
    time_t p_start;
    time_t p_ticks;
    struct rusage p_cru;
    struct itimer_info p_ii;
    struct user_info p_ui;
    struct proc* p_slink;
    struct shaddr_s* p_shaddr;
    char p_exitsig;
    mrlock_t p_who;
    struct proc* p_pgflink;
    struct proc* p_pgblink;
    struct vpgrp* p_vpgrp;
    mrlock_t p_credlock;
    struct cred* p_cred;
    struct prnode* p_trace;
    struct prnode* p_pstrace;
    int p_notused;
    uint p_exec_cnt;
    struct vnode* p_exec;
    struct vpagg_s* p_vpagg;
    struct cipso_proc* p_cipso_proc;
    struct pr_tracemasks* p_trmasks;
    u_int p_dbgflags;
    pid_t p_unblkonexecpid;
    mrlock_t p_ckptlck;
    struct avltree_desc* p_ckptshm;
    struct exit_callback* p_ecblist;
    ptimer_info_t* p_ptimers;
    bhv_desc_t p_bhv;
    struct prof* p_profp;
    short p_profn;
    inst_t* p_fastprof[11];
    int p_fastprofcnt;
    struct kaiocbhd* p_kaiocbhd;
    struct shacct* p_shacct;
    __int64_t p_parcookie;
    int* p_migrate;
};

struct itimer_info {
        struct itimerval realtimer;
        lock_t itimerlock;
        __uint64_t interval_tick;
        __uint64_t next_timeout;
        int interval_unit;
        toid_t next_toid;
};

struct rusage {
        struct timeval ru_utime;
        struct timeval ru_stime;
        long ru_maxrss;
        long ru_ixrss;
        long ru_idrss;
        long ru_isrss;
        long ru_minflt;
        long ru_majflt;
        long ru_nswap;
        long ru_inblock;
        long ru_oublock;
        long ru_msgsnd;
        long ru_msgrcv;
        long ru_nsignals;
        long ru_nvcsw;
        long ru_nivcsw;
};

struct user_info {
        char u_comm[32];
        char u_psargs[80];
        struct rlimit u_rlimit[9];
};

struct itimerval {
            struct timeval it_interval;
            struct timeval it_value;
};

