Print this page
OS-3820 lxbrand ptrace(2): the next generation
OS-3685 lxbrand PTRACE_O_TRACEFORK race condition
OS-3834 lxbrand 64-bit strace(1) reports 64-bit process as using x32 ABI
OS-3794 lxbrand panic on init signal death
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Bryan Cantrill <bryan@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/thread.h
          +++ new/usr/src/uts/common/sys/thread.h
↓ open down ↓ 406 lines elided ↑ open up ↑
 407  407  #define TS_SIGNALLED    0x0010  /* thread was awakened by cv_signal() */
 408  408  #define TS_PROJWAITQ    0x0020  /* thread is on its project's waitq */
 409  409  #define TS_ZONEWAITQ    0x0040  /* thread is on its zone's waitq */
 410  410  #define TS_CSTART       0x0100  /* setrun() by continuelwps() */
 411  411  #define TS_UNPAUSE      0x0200  /* setrun() by unpauselwps() */
 412  412  #define TS_XSTART       0x0400  /* setrun() by SIGCONT */
 413  413  #define TS_PSTART       0x0800  /* setrun() by /proc */
 414  414  #define TS_RESUME       0x1000  /* setrun() by CPR resume process */
 415  415  #define TS_CREATE       0x2000  /* setrun() by syslwp_create() */
 416  416  #define TS_RUNQMATCH    0x4000  /* exact run queue balancing by setbackdq() */
      417 +#define TS_BSTART       0x8000  /* setrun() by brand */
 417  418  #define TS_ALLSTART     \
 418      -        (TS_CSTART|TS_UNPAUSE|TS_XSTART|TS_PSTART|TS_RESUME|TS_CREATE)
      419 +        (TS_CSTART|TS_UNPAUSE|TS_XSTART|TS_PSTART|TS_RESUME|TS_CREATE|TS_BSTART)
 419  420  #define TS_ANYWAITQ     (TS_PROJWAITQ|TS_ZONEWAITQ)
 420  421  
 421  422  /*
 422  423   * Thread binding types
 423  424   */
 424  425  #define TB_ALLHARD      0
 425  426  #define TB_CPU_SOFT     0x01            /* soft binding to CPU */
 426  427  #define TB_PSET_SOFT    0x02            /* soft binding to pset */
 427  428  
 428  429  #define TB_CPU_SOFT_SET(t)              ((t)->t_bindflag |= TB_CPU_SOFT)
↓ open down ↓ 7 lines elided ↑ open up ↑
 436  437  /*
 437  438   * No locking needed for AST field.
 438  439   */
 439  440  #define aston(t)                ((t)->t_astflag = 1)
 440  441  #define astoff(t)               ((t)->t_astflag = 0)
 441  442  
 442  443  /* True if thread is stopped on an event of interest */
 443  444  #define ISTOPPED(t) ((t)->t_state == TS_STOPPED && \
 444  445                          !((t)->t_schedflag & TS_PSTART))
 445  446  
      447 +/* True if thread is stopped for a brand-specific reason */
      448 +#define BSTOPPED(t)     ((t)->t_state == TS_STOPPED && \
      449 +                            !((t)->t_schedflag & TS_BSTART))
      450 +
 446  451  /* True if thread is asleep and wakeable */
 447  452  #define ISWAKEABLE(t) (((t)->t_state == TS_SLEEP && \
 448  453                          ((t)->t_flag & T_WAKEABLE)))
 449  454  
 450  455  /* True if thread is on the wait queue */
 451  456  #define ISWAITING(t) ((t)->t_state == TS_WAIT)
 452  457  
 453  458  /* similar to ISTOPPED except the event of interest is CPR */
 454  459  #define CPR_ISTOPPED(t) ((t)->t_state == TS_STOPPED && \
 455  460                          !((t)->t_schedflag & TS_RESUME))
↓ open down ↓ 268 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX