Print this page
2916 DTrace in a zone should be able to access fds[]

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/dtrace_impl.h
          +++ new/usr/src/uts/common/sys/dtrace_impl.h
↓ open down ↓ 909 lines elided ↑ open up ↑
 910  910          int dtms_stackdepth;                    /* cached stackdepth */
 911  911          int dtms_ustackdepth;                   /* cached ustackdepth */
 912  912          struct dtrace_probe *dtms_probe;        /* current probe */
 913  913          uintptr_t dtms_caller;                  /* cached caller */
 914  914          uint64_t dtms_ucaller;                  /* cached user-level caller */
 915  915          int dtms_ipl;                           /* cached interrupt pri lev */
 916  916          int dtms_fltoffs;                       /* faulting DIFO offset */
 917  917          uintptr_t dtms_strtok;                  /* saved strtok() pointer */
 918  918          uint32_t dtms_access;                   /* memory access rights */
 919  919          dtrace_difo_t *dtms_difo;               /* current dif object */
      920 +        file_t *dtms_getf;                      /* cached rval of getf() */
 920  921  } dtrace_mstate_t;
 921  922  
 922  923  #define DTRACE_COND_OWNER       0x1
 923  924  #define DTRACE_COND_USERMODE    0x2
 924  925  #define DTRACE_COND_ZONEOWNER   0x4
 925  926  
 926  927  #define DTRACE_PROBEKEY_MAXDEPTH        8       /* max glob recursion depth */
 927  928  
 928  929  /*
 929  930   * Access flag used by dtrace_mstate.dtms_access.
↓ open down ↓ 200 lines elided ↑ open up ↑
1130 1131          cyclic_id_t dts_cleaner;                /* cleaning cyclic */
1131 1132          cyclic_id_t dts_deadman;                /* deadman cyclic */
1132 1133          hrtime_t dts_alive;                     /* time last alive */
1133 1134          char dts_speculates;                    /* boolean: has speculations */
1134 1135          char dts_destructive;                   /* boolean: has dest. actions */
1135 1136          int dts_nformats;                       /* number of formats */
1136 1137          char **dts_formats;                     /* format string array */
1137 1138          dtrace_optval_t dts_options[DTRACEOPT_MAX]; /* options */
1138 1139          dtrace_cred_t dts_cred;                 /* credentials */
1139 1140          size_t dts_nretained;                   /* number of retained enabs */
     1141 +        int dts_getf;                           /* number of getf() calls */
1140 1142  };
1141 1143  
1142 1144  struct dtrace_provider {
1143 1145          dtrace_pattr_t dtpv_attr;               /* provider attributes */
1144 1146          dtrace_ppriv_t dtpv_priv;               /* provider privileges */
1145 1147          dtrace_pops_t dtpv_pops;                /* provider operations */
1146 1148          char *dtpv_name;                        /* provider name */
1147 1149          void *dtpv_arg;                         /* provider argument */
1148 1150          hrtime_t dtpv_defunct;                  /* when made defunct */
1149 1151          struct dtrace_provider *dtpv_next;      /* next provider */
↓ open down ↓ 156 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX