Print this page
8158 Want named threads API
9857 proc manpages should have LIBRARY section

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/sgs/elfdump/common/struct_layout.h
          +++ new/usr/src/cmd/sgs/elfdump/common/struct_layout.h
↓ open down ↓ 18 lines elided ↑ open up ↑
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
  25   25   */
  26   26  
  27   27  /*
  28   28   * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
       29 + * Copyright 2018 Joyent, Inc.
  29   30   */
  30   31  
  31   32  #ifndef _STRUCT_LAYOUT_H
  32   33  #define _STRUCT_LAYOUT_H
  33   34  
  34   35  #include        <conv.h>
  35   36  #include        <_machelf.h>
  36   37  
  37   38  /*
  38   39   * Local include file for elfdump, used to define structure layout
↓ open down ↓ 52 lines elided ↑ open up ↑
  91   92          uchar_t         slf_sign;       /* True (1) if signed quantity */
  92   93  } sl_field_t;
  93   94  
  94   95  /*
  95   96   * This type is used to extract and manipulate data described by
  96   97   * sl_field_t. We rely on the C guarantee that all the fields in
  97   98   * a union have offset 0.
  98   99   */
  99  100  typedef union {
 100  101          char            sld_i8;
 101      -        uchar_t         sld_ui8;
      102 +        uchar_t         sld_ui8;
 102  103          short           sld_i16;
 103  104          ushort_t        sld_ui16;
 104  105          int32_t         sld_i32;
 105  106          uint32_t        sld_ui32;
 106  107          int64_t         sld_i64;
 107  108          uint64_t        sld_ui64;
 108  109  } sl_data_t;
 109  110  
 110  111  /*
 111  112   * Buffer large enough to format any integral value in a field
↓ open down ↓ 416 lines elided ↑ open up ↑
 528  529  
 529  530  typedef struct {
 530  531          sl_field_t              sizeof_struct;
 531  532          sl_field_t              pr_version;
 532  533          sl_field_t              pr_effective;
 533  534          sl_field_t              pr_inherit;
 534  535          sl_field_t              pr_lower;
 535  536          sl_field_t              pr_upper;
 536  537  } sl_prsecflags_layout_t;
 537  538  
      539 +typedef struct {
      540 +        sl_field_t              sizeof_struct;
      541 +        sl_field_t              pr_lwpid;
      542 +        sl_field_t              pr_lwpname;
      543 +} sl_prlwpname_layout_t;
      544 +
 538  545  /*
 539  546   * This type collects all of the layout definitions for
 540  547   * a given architecture.
 541  548   */
 542  549  typedef struct {
 543  550          const sl_auxv_layout_t          *auxv;          /* auxv_t */
 544  551          const sl_fltset_layout_t        *fltset;        /* fltset_t */
 545  552          const sl_lwpsinfo_layout_t      *lwpsinfo;      /* lwpsinfo_t */
 546  553          const sl_lwpstatus_layout_t     *lwpstatus;     /* lwpstatus_t */
 547  554          const sl_prcred_layout_t        *prcred;        /* prcred_t */
↓ open down ↓ 6 lines elided ↑ open up ↑
 554  561          const sl_prstatus_layout_t      *prstatus;      /* prstatus_t */
 555  562          const sl_sigaction_layout_t     *sigaction;     /* struct sigaction */
 556  563          const sl_siginfo_layout_t       *siginfo;       /* siginfo_t */
 557  564          const sl_sigset_layout_t        *sigset;        /* sigset_t */
 558  565          const sl_stack_layout_t         *stack;         /* stack_t */
 559  566          const sl_sysset_layout_t        *sysset;        /* sysset_t */
 560  567          const sl_timestruc_layout_t     *timestruc;     /* timestruc_t */
 561  568          const sl_utsname_layout_t       *utsname;       /* struct utsname */
 562  569          const sl_prfdinfo_layout_t      *prfdinfo;      /* prdinfo_t */
 563  570          const sl_prsecflags_layout_t    *prsecflags;    /* prsecflags_t */
      571 +        const sl_prlwpname_layout_t     *prlwpname;     /* prlwpname_t */
 564  572  } sl_arch_layout_t;
 565  573  
 566  574  
 567  575  
 568  576  extern  void            sl_extract_num_field(const char *data, int do_swap,
 569  577                              const sl_field_t *fdesc, sl_data_t *field_data);
 570  578  extern  Word            sl_extract_as_word(const char *data, int do_swap,
 571  579                              const sl_field_t *fdesc);
 572  580  extern  Lword           sl_extract_as_lword(const char *data, int do_swap,
 573  581                              const sl_field_t *fdesc);
↓ open down ↓ 20 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX