RTEMS
6.1-rc1
cpukit
include
dlfcn.h
1
/* $NetBSD: dlfcn.h,v 1.21 2010/01/07 07:35:35 skrll Exp $ */
2
3
/*-
4
* Copyright (c) 1998 The NetBSD Foundation, Inc.
5
* All rights reserved.
6
*
7
* This code is derived from software contributed to The NetBSD Foundation
8
* by Paul Kranenburg.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
* 1. Redistributions of source code must retain the above copyright
14
* notice, this list of conditions and the following disclaimer.
15
* 2. Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in the
17
* documentation and/or other materials provided with the distribution.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
#ifndef _DLFCN_H_
33
#define _DLFCN_H_
34
35
//#include <sys/featuretest.h>
36
#include <sys/cdefs.h>
37
38
#if defined(_NETBSD_SOURCE)
39
typedef
struct
_dl_info {
40
const
char
*dli_fname;
/* File defining the symbol */
41
void
*dli_fbase;
/* Base address */
42
const
char
*dli_sname;
/* Symbol name */
43
const
void
*dli_saddr;
/* Symbol address */
44
} Dl_info;
45
#endif
/* defined(_NETBSD_SOURCE) */
46
47
/*
48
* User interface to the run-time linker.
49
*/
50
__BEGIN_DECLS
51
void
*dlopen(
const
char
*,
int
);
52
int
dlclose(
void
*);
53
void
*dlsym(
void
* __restrict,
const
char
* __restrict);
54
#if defined(_NETBSD_SOURCE)
55
int
dladdr(
void
* __restrict, Dl_info * __restrict);
56
int
dlctl(
void
*,
int
,
void
*);
57
#endif
58
int
dlinfo(
void
*,
int
,
void
*);
59
const
char
*dlerror(
void
);
60
__END_DECLS
61
62
/* Values for dlopen `mode'. */
63
#define RTLD_LAZY 1
64
#define RTLD_NOW 2
65
#define RTLD_GLOBAL 0x100
/* Allow global searches in object */
66
#define RTLD_LOCAL 0x200
67
#if defined(_NETBSD_SOURCE)
68
#define DL_LAZY RTLD_LAZY
/* Compat */
69
#endif
70
71
/*
72
* Special handle arguments for dlsym().
73
*/
74
#define RTLD_NEXT ((void *) -1)
/* Search subsequent objects. */
75
#define RTLD_DEFAULT ((void *) -2)
/* Use default search algorithm. */
76
#define RTLD_SELF ((void *) -3)
/* Search the caller itself. */
77
78
/*
79
* dlctl() commands
80
*/
81
#if defined(_NETBSD_SOURCE)
82
#define DL_GETERRNO 1
83
#define DL_GETSYMBOL 2
84
#if 0
85
#define DL_SETSRCHPATH x
86
#define DL_GETLIST x
87
#define DL_GETREFCNT x
88
#define DL_GETLOADADDR x
89
#endif
/* 0 */
90
#endif
/* defined(_NETBSD_SOURCE) */
91
92
/*
93
* dlinfo() commands
94
*
95
* From Solaris: http://docs.sun.com/app/docs/doc/816-5168/dlinfo-3c?a=view
96
*/
97
#define RTLD_DI_UNRESOLVED 10
98
#if defined(_NETBSD_SOURCE)
99
#define RTLD_DI_LINKMAP 3
100
#if 0
101
#define RTLD_DI_ARGSINFO 1
102
#define RTLD_DI_CONFIGADDR 2
103
#define RTLD_DI_LMID 4
104
#define RTLD_DI_SERINFO 5
105
#define RTLD_DI_SERINFOSIZE 6
106
#define RTLD_DI_ORIGIN 7
107
#define RTLD_DI_GETSIGNAL 8
108
#define RTLD_DI_SETSIGNAL 9
109
#endif
110
#endif
/* _NETBSD_SOURCE */
111
112
#endif
/* !defined(_DLFCN_H_) */
Generated by
1.9.4