/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _CTF_IMPL_H
#define _CTF_IMPL_H
#ifndef VBOX
#pragma ident "%Z%%M% %I% %E% SMI"
#include <sys/sysmacros.h>
#else /* VBOX */
# include "../../../../../Runtime/include/internal/ldrELF32.h"
# include "../../../../../Runtime/include/internal/ldrELF64.h"
# include <errno.h>
# include "VBoxDTraceLibCWrappers.h"
#endif /* VBOX */
#ifdef _KERNEL
#ifndef VBOX
#endif
#define isspace(c) \
((c) == ' ' || (c) == '\t' || (c) == '\n' || \
(c) == '\r' || (c) == '\f' || (c) == '\v')
#else /* _KERNEL */
#ifndef VBOX
#include <strings.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <limits.h>
#include <ctype.h>
#endif
#endif /* _KERNEL */
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ctf_helem {
} ctf_helem_t;
typedef struct ctf_hash {
} ctf_hash_t;
typedef struct ctf_strs {
} ctf_strs_t;
typedef struct ctf_dmodel {
} ctf_dmodel_t;
typedef struct ctf_lookup {
} ctf_lookup_t;
typedef struct ctf_fileops {
typedef struct ctf_list {
} ctf_list_t;
typedef enum {
typedef struct ctf_decl_node {
typedef struct ctf_decl {
} ctf_decl_t;
typedef struct ctf_dmdef {
} ctf_dmdef_t;
typedef struct ctf_dtdef {
union {
} dtd_u;
} ctf_dtdef_t;
typedef struct ctf_bundle {
} ctf_bundle_t;
/*
* The ctf_file is the structure used to represent a CTF container to library
* clients, who see it only as an opaque pointer. Modifications can therefore
* be made freely to this structure without regard to client versioning. The
*
* NOTE: ctf_update() requires that everything inside of ctf_file either be an
* immediate value, a pointer to dynamically allocated data *outside* of the
* ctf_file itself, or a pointer to statically allocated data. If you add a
* pointer to ctf_file that points to something within the ctf_file itself,
* you must make corresponding changes to ctf_update().
*/
struct ctf_file {
};
enum {
};
const char *, size_t);
extern void ctf_hash_destroy(ctf_hash_t *);
extern void ctf_list_append(ctf_list_t *, void *);
extern void ctf_list_prepend(ctf_list_t *, void *);
extern void ctf_list_delete(ctf_list_t *, void *);
extern void ctf_decl_fini(ctf_decl_t *);
extern void ctf_decl_sprintf(ctf_decl_t *, const char *, ...);
extern ctf_file_t *ctf_set_open_errno(int *, int);
extern long ctf_set_errno(ctf_file_t *, int);
extern const void *ctf_sect_mmap(ctf_sect_t *, int);
extern void ctf_sect_munmap(const ctf_sect_t *);
extern void *ctf_data_alloc(size_t);
extern void ctf_data_free(void *, size_t);
extern void ctf_data_protect(void *, size_t);
extern char *ctf_strdup(const char *);
extern const char *ctf_strerror(int);
extern void ctf_dprintf(const char *, ...);
extern void *ctf_zopen(int *);
extern const char _CTF_SECTION[]; /* name of CTF ELF section */
extern const char _CTF_NULLSTR[]; /* empty string */
extern int _libctf_version; /* library client version */
extern int _libctf_debug; /* debugging messages enabled */
#ifdef VBOX
# ifndef MAP_FAILED /* returned by ctf_data_alloc on failure. */
# endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* _CTF_IMPL_H */