Print this page
OS-5569 uberdata32_t is missing ul_brand member
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-5192 need faster clock_gettime
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Reviewed by: Ryan Zezeski <ryan@zinascii.com>
OS-2844 lx brand should support 64-bit user-land
OS-3280 need a way to specify the root of a native system in the lx brand
OS-3279 lx brand should allow delegated datasets
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libc/inc/thr_uberdata.h
          +++ new/usr/src/lib/libc/inc/thr_uberdata.h
↓ open down ↓ 957 lines elided ↑ open up ↑
 958  958          uint_t          hash_size;      /* # of entries in thr_hash_table[] */
 959  959          uint_t          hash_mask;      /* hash_size - 1 */
 960  960          ulwp_t  *ulwp_one;      /* main thread */
 961  961          ulwp_t  *all_lwps;      /* circular ul_forw/ul_back list of live lwps */
 962  962          ulwp_t  *all_zombies;   /* circular ul_forw/ul_back list of zombies */
 963  963          int     nthreads;       /* total number of live threads/lwps */
 964  964          int     nzombies;       /* total number of zombie threads */
 965  965          int     ndaemons;       /* total number of THR_DAEMON threads/lwps */
 966  966          pid_t   pid;            /* the current process's pid */
 967  967          void    (*sigacthandler)(int, siginfo_t *, void *);
      968 +        int     (*setctxt)(const ucontext_t *);
 968  969          ulwp_t  *lwp_stacks;
 969  970          ulwp_t  *lwp_laststack;
 970  971          int     nfreestack;
 971  972          int     thread_stack_cache;
 972  973          ulwp_t  *ulwp_freelist;
 973  974          ulwp_t  *ulwp_lastfree;
 974  975          ulwp_t  *ulwp_replace_free;
 975  976          ulwp_t  *ulwp_replace_last;
 976  977          atfork_t        *atforklist;    /* circular Q for fork handlers */
 977  978          robust_t        **robustlocks;  /* table of registered robust locks */
 978  979          robust_t        *robustlist;    /* list of registered robust locks */
 979  980          char    *progname;      /* the basename of the program, from argv[0] */
      981 +        char    *ub_broot;      /* the root of the native code in the brand */
      982 +        void    *ub_comm_page;  /* arch-specific comm page of kernel data */
 980  983          struct uberdata **tdb_bootstrap;
 981  984          tdb_t   tdb;            /* thread debug interfaces (for libc_db) */
 982  985  } uberdata_t;
 983  986  
 984  987  #define link_lock       _link_lock.pad_lock
 985  988  #define ld_lock         _ld_lock.pad_lock
 986  989  #define fork_lock       _fork_lock.pad_lock
 987  990  #define atfork_lock     _atfork_lock.pad_lock
 988  991  #define callout_lock    _callout_lock.pad_lock
 989  992  #define tdb_hash_lock   _tdb_hash_lock.pad_lock
↓ open down ↓ 181 lines elided ↑ open up ↑
1171 1174          uint_t          hash_size;
1172 1175          uint_t          hash_mask;
1173 1176          caddr32_t       ulwp_one;
1174 1177          caddr32_t       all_lwps;
1175 1178          caddr32_t       all_zombies;
1176 1179          int             nthreads;
1177 1180          int             nzombies;
1178 1181          int             ndaemons;
1179 1182          int             pid;
1180 1183          caddr32_t       sigacthandler;
     1184 +        caddr32_t       setctxt;
1181 1185          caddr32_t       lwp_stacks;
1182 1186          caddr32_t       lwp_laststack;
1183 1187          int             nfreestack;
1184 1188          int             thread_stack_cache;
1185 1189          caddr32_t       ulwp_freelist;
1186 1190          caddr32_t       ulwp_lastfree;
1187 1191          caddr32_t       ulwp_replace_free;
1188 1192          caddr32_t       ulwp_replace_last;
1189 1193          caddr32_t       atforklist;
1190 1194          caddr32_t       robustlocks;
1191 1195          caddr32_t       robustlist;
1192 1196          caddr32_t       progname;
     1197 +        caddr32_t       ub_broot;
     1198 +        caddr32_t       ub_comm_page;
1193 1199          caddr32_t       tdb_bootstrap;
1194 1200          tdb32_t         tdb;
1195 1201  } uberdata32_t;
1196 1202  
1197 1203  #endif  /* _SYSCALL32 */
1198 1204  
1199 1205  /* ul_stop values */
1200 1206  #define TSTP_REGULAR    0x01    /* Stopped by thr_suspend() */
1201 1207  #define TSTP_MUTATOR    0x08    /* stopped by thr_suspend_*mutator*() */
1202 1208  #define TSTP_FORK       0x20    /* stopped by suspend_fork() */
↓ open down ↓ 69 lines elided ↑ open up ↑
1272 1278  extern  void    tmem_exit(void);
1273 1279  extern  void    tsd_exit(void);
1274 1280  extern  void    tsd_free(ulwp_t *);
1275 1281  extern  void    tls_setup(void);
1276 1282  extern  void    tls_exit(void);
1277 1283  extern  void    tls_free(ulwp_t *);
1278 1284  extern  void    rwl_free(ulwp_t *);
1279 1285  extern  void    heldlock_exit(void);
1280 1286  extern  void    heldlock_free(ulwp_t *);
1281 1287  extern  void    sigacthandler(int, siginfo_t *, void *);
     1288 +extern  int     setctxt(const ucontext_t *);
1282 1289  extern  void    signal_init(void);
1283 1290  extern  int     sigequalset(const sigset_t *, const sigset_t *);
1284 1291  extern  void    mutex_setup(void);
1285 1292  extern  void    take_deferred_signal(int);
1286 1293  extern  void    *setup_top_frame(void *, size_t, ulwp_t *);
1287 1294  extern  int     setup_context(ucontext_t *, void *(*func)(ulwp_t *),
1288 1295                          ulwp_t *ulwp, caddr_t stk, size_t stksize);
1289 1296  extern  volatile sc_shared_t *setup_schedctl(void);
1290 1297  extern  void    *lmalloc(size_t);
1291 1298  extern  void    lfree(void *, size_t);
↓ open down ↓ 252 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX