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>
        
*** 412,423 ****
  #define TS_XSTART       0x0400  /* setrun() by SIGCONT */
  #define TS_PSTART       0x0800  /* setrun() by /proc */
  #define TS_RESUME       0x1000  /* setrun() by CPR resume process */
  #define TS_CREATE       0x2000  /* setrun() by syslwp_create() */
  #define TS_RUNQMATCH    0x4000  /* exact run queue balancing by setbackdq() */
  #define TS_ALLSTART     \
!         (TS_CSTART|TS_UNPAUSE|TS_XSTART|TS_PSTART|TS_RESUME|TS_CREATE)
  #define TS_ANYWAITQ     (TS_PROJWAITQ|TS_ZONEWAITQ)
  
  /*
   * Thread binding types
   */
--- 412,424 ----
  #define TS_XSTART       0x0400  /* setrun() by SIGCONT */
  #define TS_PSTART       0x0800  /* setrun() by /proc */
  #define TS_RESUME       0x1000  /* setrun() by CPR resume process */
  #define TS_CREATE       0x2000  /* setrun() by syslwp_create() */
  #define TS_RUNQMATCH    0x4000  /* exact run queue balancing by setbackdq() */
+ #define TS_BSTART       0x8000  /* setrun() by brand */
  #define TS_ALLSTART     \
!         (TS_CSTART|TS_UNPAUSE|TS_XSTART|TS_PSTART|TS_RESUME|TS_CREATE|TS_BSTART)
  #define TS_ANYWAITQ     (TS_PROJWAITQ|TS_ZONEWAITQ)
  
  /*
   * Thread binding types
   */
*** 441,450 ****
--- 442,455 ----
  
  /* True if thread is stopped on an event of interest */
  #define ISTOPPED(t) ((t)->t_state == TS_STOPPED && \
                          !((t)->t_schedflag & TS_PSTART))
  
+ /* True if thread is stopped for a brand-specific reason */
+ #define BSTOPPED(t)     ((t)->t_state == TS_STOPPED && \
+                             !((t)->t_schedflag & TS_BSTART))
+ 
  /* True if thread is asleep and wakeable */
  #define ISWAKEABLE(t) (((t)->t_state == TS_SLEEP && \
                          ((t)->t_flag & T_WAKEABLE)))
  
  /* True if thread is on the wait queue */