Print this page
OS-5510 remove lwp_brand_syscall_fast handler
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
OS-4961 lxbrand want fasttrap-like brand hook
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-3561 lxbrand emulation library should execute on alternate stack
OS-3558 lxbrand add support for full in-kernel syscall handling
OS-3545 lx_syscall_regs should not walk stack
OS-3868 many LTP testcases now hang
OS-3901 lxbrand lx_recvmsg fails to translate control messages when 64-bit
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Bryan Cantrill <bryan@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/klwp.h
          +++ new/usr/src/uts/common/sys/klwp.h
↓ open down ↓ 16 lines elided ↑ open up ↑
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26   26  /*
  27      - * Copyright (c) 2013, Joyent, Inc. All rights reserved.
       27 + * Copyright 2016 Joyent, Inc.
  28   28   */
  29   29  
  30   30  #ifndef _SYS_KLWP_H
  31   31  #define _SYS_KLWP_H
  32   32  
  33   33  #include <sys/types.h>
  34   34  #include <sys/condvar.h>
  35   35  #include <sys/thread.h>
  36   36  #include <sys/signal.h>
  37   37  #include <sys/siginfo.h>
↓ open down ↓ 146 lines elided ↑ open up ↑
 184  184  
 185  185          uintptr_t       lwp_ustack;             /* current stack bounds */
 186  186          size_t          lwp_old_stk_ctl;        /* old stack limit */
 187  187  
 188  188          /*
 189  189           * Contracts
 190  190           */
 191  191          struct ct_template *lwp_ct_active[CTT_MAXTYPE]; /* active templates */
 192  192          struct contract *lwp_ct_latest[CTT_MAXTYPE]; /* last created contract */
 193  193  
 194      -        void    *lwp_brand;             /* per-lwp brand data */
      194 +        /*
      195 +         * Branding:
      196 +         * lwp_brand                    - per-lwp brand data
      197 +         * lwp_brand_syscall            - brand syscall interposer
      198 +         */
      199 +        void    *lwp_brand;
      200 +        int     (*lwp_brand_syscall)(void);
      201 +
 195  202          struct psinfo *lwp_spymaster;   /* if an agent LWP, our spymaster */
 196  203  } klwp_t;
 197  204  
 198  205  /* lwp states */
 199  206  #define LWP_USER        0x01            /* Running in user mode */
 200  207  #define LWP_SYS         0x02            /* Running in kernel mode */
 201  208  
 202  209  #if     defined(_KERNEL)
 203  210  extern  int     lwp_default_stksize;
 204  211  extern  int     lwp_reapcnt;
↓ open down ↓ 17 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX