root / lab4 / .minix-src / include / dlfcn.h @ 13
History | View | Annotate | Download (3.67 KB)
1 |
/* $NetBSD: dlfcn.h,v 1.24 2012/02/16 23:00:39 joerg 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 *_dlauxinfo(void) __pure; |
52 |
|
53 |
void *dlopen(const char *, int); |
54 |
int dlclose(void *); |
55 |
void *dlsym(void * __restrict, const char * __restrict); |
56 |
#if defined(_NETBSD_SOURCE)
|
57 |
int dladdr(const void * __restrict, Dl_info * __restrict); |
58 |
int dlctl(void *, int, void *); |
59 |
int dlinfo(void *, int, void *); |
60 |
void *dlvsym(void * __restrict, const char * __restrict, |
61 |
const char * __restrict); |
62 |
#endif
|
63 |
__aconst char *dlerror(void); |
64 |
__END_DECLS |
65 |
|
66 |
/* Values for dlopen `mode'. */
|
67 |
#define RTLD_LAZY 1 |
68 |
#define RTLD_NOW 2 |
69 |
#define RTLD_GLOBAL 0x100 /* Allow global searches in object */ |
70 |
#define RTLD_LOCAL 0x200 |
71 |
#define RTLD_NODELETE 0x01000 /* Do not remove members. */ |
72 |
#define RTLD_NOLOAD 0x02000 /* Do not load if not already loaded. */ |
73 |
#if defined(_NETBSD_SOURCE)
|
74 |
#define DL_LAZY RTLD_LAZY /* Compat */ |
75 |
#endif
|
76 |
|
77 |
/*
|
78 |
* Special handle arguments for dlsym().
|
79 |
*/
|
80 |
#define RTLD_NEXT ((void *) -1) /* Search subsequent objects. */ |
81 |
#define RTLD_DEFAULT ((void *) -2) /* Use default search algorithm. */ |
82 |
#define RTLD_SELF ((void *) -3) /* Search the caller itself. */ |
83 |
|
84 |
/*
|
85 |
* dlctl() commands
|
86 |
*/
|
87 |
#if defined(_NETBSD_SOURCE)
|
88 |
#define DL_GETERRNO 1 |
89 |
#define DL_GETSYMBOL 2 |
90 |
#if 0
|
91 |
#define DL_SETSRCHPATH x
|
92 |
#define DL_GETLIST x
|
93 |
#define DL_GETREFCNT x
|
94 |
#define DL_GETLOADADDR x
|
95 |
#endif /* 0 */
|
96 |
#endif /* defined(_NETBSD_SOURCE) */ |
97 |
|
98 |
/*
|
99 |
* dlinfo() commands
|
100 |
*
|
101 |
* From Solaris: http://docs.sun.com/app/docs/doc/816-5168/dlinfo-3c?a=view
|
102 |
*/
|
103 |
#if defined(_NETBSD_SOURCE)
|
104 |
#define RTLD_DI_LINKMAP 3 |
105 |
#if 0
|
106 |
#define RTLD_DI_ARGSINFO 1
|
107 |
#define RTLD_DI_CONFIGADDR 2
|
108 |
#define RTLD_DI_LMID 4
|
109 |
#define RTLD_DI_SERINFO 5
|
110 |
#define RTLD_DI_SERINFOSIZE 6
|
111 |
#define RTLD_DI_ORIGIN 7
|
112 |
#define RTLD_DI_GETSIGNAL 8
|
113 |
#define RTLD_DI_SETSIGNAL 9
|
114 |
#endif
|
115 |
#endif /* _NETBSD_SOURCE */ |
116 |
|
117 |
#endif /* !defined(_DLFCN_H_) */ |