proc psinfo_t Structure

Several proc probes have an argument of type psinfo_t, a structure that is documented in proc. The definition of the psinfo_t structure as available to DTrace consumers is as follows:

typedef struct psinfo {
        int     pr_nlwp;            /* number of active lwps in the process */
        pid_t   pr_pid;             /* unique process id */
        pid_t   pr_ppid;            /* process id of parent */
        pid_t   pr_pgid;            /* pid of process group leader */
        pid_t   pr_sid;             /* session id */
        uid_t   pr_uid;             /* real user id */
        uid_t   pr_euid;            /* effective user id */
        gid_t   pr_gid;             /* real group id */
        gid_t   pr_egid;            /* effective group id */
        uintptr_t pr_addr;          /* address of process */
        dev_t   pr_ttydev;          /* controlling tty device (or PRNODEV) */
        timestruc_t pr_start;       /* process start time, from the epoch */
        char    pr_fname[PRFNSZ];   /* name of exec'd file */
        char    pr_psargs[PRARGSZ]; /* initial characters of arg list */
        int     pr_argc;            /* initial argument count */
        uintptr_t pr_argv;          /* address of initial argument vector */
        uintptr_t pr_envp;          /* address of initial environment vector */
        char    pr_dmodel;          /* data model of the process */
        taskid_t pr_taskid;         /* task id */
        projid_t pr_projid;         /* project id */
        poolid_t pr_poolid;         /* pool id */
        zoneid_t pr_zoneid;         /* zone id */
} psinfo_t;

The pr_dmodel field is set to either PR_MODEL_ILP32, denoting a 32-bit process, or PR_MODEL_LP64, denoting a 64-bit process.