xref: /illumos-gate/usr/src/lib/libctf/common/libctf_impl.h (revision 83dba8e170d701b48549af39323874fe1d568f53)
1  /*
2   * This file and its contents are supplied under the terms of the
3   * Common Development and Distribution License ("CDDL"), version 1.0.
4   * You may only use this file in accordance with the terms of version
5   * 1.0 of the CDDL.
6   *
7   * A full copy of the text of the CDDL should have accompanied this
8   * source.  A copy of the CDDL is also available via the Internet at
9   * http://www.illumos.org/license/CDDL.
10   */
11  
12  /*
13   * Copyright 2015 Joyent, Inc.
14   */
15  
16  #ifndef _LIBCTF_IMPL_H
17  #define	_LIBCTF_IMPL_H
18  
19  /*
20   * Portions of libctf implementations that are only suitable for CTF's userland
21   * library, eg. converting and merging related routines.
22   */
23  
24  #include <libelf.h>
25  #include <libctf.h>
26  #include <ctf_impl.h>
27  
28  #ifdef __cplusplus
29  extern "C" {
30  #endif
31  
32  typedef enum ctf_conv_status {
33  	CTF_CONV_SUCCESS	= 0,
34  	CTF_CONV_ERROR		= 1,
35  	CTF_CONV_NOTSUP		= 2
36  } ctf_conv_status_t;
37  
38  typedef ctf_conv_status_t (*ctf_convert_f)(int, Elf *, uint_t, int *,
39      ctf_file_t **, char *, size_t);
40  extern ctf_conv_status_t ctf_dwarf_convert(int, Elf *, uint_t, int *,
41      ctf_file_t **, char *, size_t);
42  
43  /*
44   * zlib compression routines
45   */
46  extern int ctf_compress(ctf_file_t *fp, void **, size_t *, size_t *);
47  
48  extern int ctf_diff_self(ctf_diff_t *, ctf_diff_type_f, void *);
49  
50  /*
51   * Internal debugging aids
52   */
53  extern void ctf_phase_dump(ctf_file_t *, const char *);
54  
55  #ifdef __cplusplus
56  }
57  #endif
58  
59  #endif /* _LIBCTF_IMPL_H */
60