Print this page
7029 want per-process exploit mitigation features (secflags)
7030 want basic address space layout randomization (aslr)
7031 noexec_user_stack should be a secflag
7032 want a means to forbid mappings around NULL.


 135         PR_OBJECT,              /* /proc/<pid>/object/xxx         */
 136         PR_LWPDIR,              /* /proc/<pid>/lwp                        */
 137         PR_LWPIDDIR,            /* /proc/<pid>/lwp/<lwpid>          */
 138         PR_LWPCTL,              /* /proc/<pid>/lwp/<lwpid>/lwpctl   */
 139         PR_LWPSTATUS,           /* /proc/<pid>/lwp/<lwpid>/lwpstatus        */
 140         PR_LWPSINFO,            /* /proc/<pid>/lwp/<lwpid>/lwpsinfo */
 141         PR_LWPUSAGE,            /* /proc/<pid>/lwp/<lwpid>/lwpusage */
 142         PR_XREGS,               /* /proc/<pid>/lwp/<lwpid>/xregs    */
 143         PR_TMPLDIR,             /* /proc/<pid>/lwp/<lwpid>/templates        */
 144         PR_TMPL,                /* /proc/<pid>/lwp/<lwpid>/templates/<id> */
 145         PR_SPYMASTER,           /* /proc/<pid>/lwp/<lwpid>/spymaster        */
 146 #if defined(__sparc)
 147         PR_GWINDOWS,            /* /proc/<pid>/lwp/<lwpid>/gwindows */
 148         PR_ASRS,                /* /proc/<pid>/lwp/<lwpid>/asrs             */
 149 #endif
 150         PR_PRIV,                /* /proc/<pid>/priv                       */
 151         PR_PATHDIR,             /* /proc/<pid>/path                       */
 152         PR_PATH,                /* /proc/<pid>/path/xxx                   */
 153         PR_CTDIR,               /* /proc/<pid>/contracts          */
 154         PR_CT,                  /* /proc/<pid>/contracts/<ctid>             */

 155         PR_PIDFILE,             /* old process file                     */
 156         PR_LWPIDFILE,           /* old lwp file                         */
 157         PR_OPAGEDATA,           /* old page data file                   */
 158         PR_NFILES               /* number of /proc node types           */
 159 } prnodetype_t;
 160 
 161 typedef struct prnode {
 162         vnode_t         *pr_next;       /* list of all vnodes for process */
 163         uint_t          pr_flags;       /* private flags */
 164         kmutex_t        pr_mutex;       /* locks pr_files and child pr_flags */
 165         prnodetype_t    pr_type;        /* node type */
 166         mode_t          pr_mode;        /* file mode */
 167         ino_t           pr_ino;         /* node id (for stat(2)) */
 168         uint_t          pr_hatid;       /* hat layer id for page data files */
 169         prcommon_t      *pr_common;     /* common data structure */
 170         prcommon_t      *pr_pcommon;    /* process common data structure */
 171         vnode_t         *pr_parent;     /* parent directory */
 172         vnode_t         **pr_files;     /* contained files array (directory) */
 173         uint_t          pr_index;       /* position within parent */
 174         vnode_t         *pr_pidfile;    /* substitute vnode for old /proc */




 135         PR_OBJECT,              /* /proc/<pid>/object/xxx         */
 136         PR_LWPDIR,              /* /proc/<pid>/lwp                        */
 137         PR_LWPIDDIR,            /* /proc/<pid>/lwp/<lwpid>          */
 138         PR_LWPCTL,              /* /proc/<pid>/lwp/<lwpid>/lwpctl   */
 139         PR_LWPSTATUS,           /* /proc/<pid>/lwp/<lwpid>/lwpstatus        */
 140         PR_LWPSINFO,            /* /proc/<pid>/lwp/<lwpid>/lwpsinfo */
 141         PR_LWPUSAGE,            /* /proc/<pid>/lwp/<lwpid>/lwpusage */
 142         PR_XREGS,               /* /proc/<pid>/lwp/<lwpid>/xregs    */
 143         PR_TMPLDIR,             /* /proc/<pid>/lwp/<lwpid>/templates        */
 144         PR_TMPL,                /* /proc/<pid>/lwp/<lwpid>/templates/<id> */
 145         PR_SPYMASTER,           /* /proc/<pid>/lwp/<lwpid>/spymaster        */
 146 #if defined(__sparc)
 147         PR_GWINDOWS,            /* /proc/<pid>/lwp/<lwpid>/gwindows */
 148         PR_ASRS,                /* /proc/<pid>/lwp/<lwpid>/asrs             */
 149 #endif
 150         PR_PRIV,                /* /proc/<pid>/priv                       */
 151         PR_PATHDIR,             /* /proc/<pid>/path                       */
 152         PR_PATH,                /* /proc/<pid>/path/xxx                   */
 153         PR_CTDIR,               /* /proc/<pid>/contracts          */
 154         PR_CT,                  /* /proc/<pid>/contracts/<ctid>             */
 155         PR_SECFLAGS,            /* /proc/<pid>/secflags                   */
 156         PR_PIDFILE,             /* old process file                     */
 157         PR_LWPIDFILE,           /* old lwp file                         */
 158         PR_OPAGEDATA,           /* old page data file                   */
 159         PR_NFILES               /* number of /proc node types           */
 160 } prnodetype_t;
 161 
 162 typedef struct prnode {
 163         vnode_t         *pr_next;       /* list of all vnodes for process */
 164         uint_t          pr_flags;       /* private flags */
 165         kmutex_t        pr_mutex;       /* locks pr_files and child pr_flags */
 166         prnodetype_t    pr_type;        /* node type */
 167         mode_t          pr_mode;        /* file mode */
 168         ino_t           pr_ino;         /* node id (for stat(2)) */
 169         uint_t          pr_hatid;       /* hat layer id for page data files */
 170         prcommon_t      *pr_common;     /* common data structure */
 171         prcommon_t      *pr_pcommon;    /* process common data structure */
 172         vnode_t         *pr_parent;     /* parent directory */
 173         vnode_t         **pr_files;     /* contained files array (directory) */
 174         uint_t          pr_index;       /* position within parent */
 175         vnode_t         *pr_pidfile;    /* substitute vnode for old /proc */