Print this page
4474 DTrace Userland CTF Support
4475 DTrace userland Keyword
4476 DTrace tests should be better citizens
4479 pid provider types
4480 dof emulation missing checks
Reviewed by: Bryan Cantrill <bryan@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/ctf_api.h
          +++ new/usr/src/uts/common/sys/ctf_api.h
↓ open down ↓ 16 lines elided ↑ open up ↑
  17   17   * fields enclosed by brackets "[]" replaced with your own identifying
  18   18   * information: Portions Copyright [yyyy] [name of copyright owner]
  19   19   *
  20   20   * CDDL HEADER END
  21   21   */
  22   22  /*
  23   23   * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
  25   25   */
  26   26  /*
  27      - * Copyright (c) 2012, Joyent, Inc.  All rights reserved.
       27 + * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
  28   28   */
  29   29  
  30   30  /*
  31   31   * This header file defines the interfaces available from the CTF debugger
  32   32   * library, libctf, and an equivalent kernel module.  This API can be used by
  33   33   * a debugger to operate on data in the Compact ANSI-C Type Format (CTF).
  34   34   * This is NOT a public interface, although it may eventually become one in
  35   35   * the fullness of time after we gain more experience with the interfaces.
  36   36   *
  37   37   * In the meantime, be aware that any program linked with this API in this
↓ open down ↓ 106 lines elided ↑ open up ↑
 144  144  typedef int ctf_member_f(const char *, ctf_id_t, ulong_t, void *);
 145  145  typedef int ctf_enum_f(const char *, int, void *);
 146  146  typedef int ctf_type_f(ctf_id_t, void *);
 147  147  typedef int ctf_label_f(const char *, const ctf_lblinfo_t *, void *);
 148  148  
 149  149  extern ctf_file_t *ctf_bufopen(const ctf_sect_t *, const ctf_sect_t *,
 150  150      const ctf_sect_t *, int *);
 151  151  extern ctf_file_t *ctf_fdopen(int, int *);
 152  152  extern ctf_file_t *ctf_open(const char *, int *);
 153  153  extern ctf_file_t *ctf_create(int *);
      154 +extern ctf_file_t *ctf_dup(ctf_file_t *);
 154  155  extern void ctf_close(ctf_file_t *);
 155  156  
 156  157  extern ctf_file_t *ctf_parent_file(ctf_file_t *);
 157  158  extern const char *ctf_parent_name(ctf_file_t *);
 158  159  
 159  160  extern int ctf_import(ctf_file_t *, ctf_file_t *);
 160  161  extern int ctf_setmodel(ctf_file_t *, int);
 161  162  extern int ctf_getmodel(ctf_file_t *);
 162  163  
 163  164  extern void ctf_setspecific(ctf_file_t *, void *);
↓ open down ↓ 5 lines elided ↑ open up ↑
 169  170  
 170  171  extern int ctf_func_info(ctf_file_t *, ulong_t, ctf_funcinfo_t *);
 171  172  extern int ctf_func_args(ctf_file_t *, ulong_t, uint_t, ctf_id_t *);
 172  173  
 173  174  extern ctf_id_t ctf_lookup_by_name(ctf_file_t *, const char *);
 174  175  extern ctf_id_t ctf_lookup_by_symbol(ctf_file_t *, ulong_t);
 175  176  
 176  177  extern ctf_id_t ctf_type_resolve(ctf_file_t *, ctf_id_t);
 177  178  extern ssize_t ctf_type_lname(ctf_file_t *, ctf_id_t, char *, size_t);
 178  179  extern char *ctf_type_name(ctf_file_t *, ctf_id_t, char *, size_t);
      180 +extern char *ctf_type_qname(ctf_file_t *, ctf_id_t, char *, size_t,
      181 +    const char *);
 179  182  extern ssize_t ctf_type_size(ctf_file_t *, ctf_id_t);
 180  183  extern ssize_t ctf_type_align(ctf_file_t *, ctf_id_t);
 181  184  extern int ctf_type_kind(ctf_file_t *, ctf_id_t);
 182  185  extern ctf_id_t ctf_type_reference(ctf_file_t *, ctf_id_t);
 183  186  extern ctf_id_t ctf_type_pointer(ctf_file_t *, ctf_id_t);
 184  187  extern int ctf_type_encoding(ctf_file_t *, ctf_id_t, ctf_encoding_t *);
 185  188  extern int ctf_type_visit(ctf_file_t *, ctf_id_t, ctf_visit_f *, void *);
 186  189  extern int ctf_type_cmp(ctf_file_t *, ctf_id_t, ctf_file_t *, ctf_id_t);
 187  190  extern int ctf_type_compat(ctf_file_t *, ctf_id_t, ctf_file_t *, ctf_id_t);
 188  191  
↓ open down ↓ 56 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX