dlfcn.h revision 1.6
1/*	$NetBSD: dlfcn.h,v 1.6 1998/05/06 20:28:54 kleink Exp $	*/
2
3/*
4 * Copyright (c) 1995 Paul Kranenburg
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 *    must display the following acknowledgement:
17 *      This product includes software developed by Paul Kranenburg.
18 * 4. The name of the author may not be used to endorse or promote products
19 *    derived from this software withough specific prior written permission
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#ifndef _DLFCN_H_
34#define _DLFCN_H_
35
36#include <sys/cdefs.h>
37
38/*
39 * User interface to the run-time linker.
40 */
41__BEGIN_DECLS
42extern void	*dlopen __P((const char *, int));
43extern int	dlclose __P((void *));
44extern void	*dlsym __P((void *, const char *));
45#if !defined(_XOPEN_SOURCE)
46extern int	dlctl __P((void *, int, void *));
47#endif
48extern char	*dlerror __P((void));
49__END_DECLS
50
51/* Values for dlopen `mode'. */
52#define RTLD_LAZY	1
53#define RTLD_NOW	2
54#define RTLD_LOCAL	0x000
55#define RTLD_GLOBAL	0x100		/* Allow global searches in object */
56#if !defined(_XOPEN_SOURCE)
57#define DL_LAZY		RTLD_LAZY	/* Compat */
58#endif
59
60/*
61 * dlctl() commands
62 */
63#if !defined(_XOPEN_SOURCE)
64#define DL_GETERRNO	1
65#if 0
66#define DL_SETSRCHPATH	x
67#define DL_GETLIST	x
68#define DL_GETREFCNT	x
69#define DL_GETLOADADDR	x
70#endif /* 0 */
71#endif /* !defined(_XOPEN_SOURCE) */
72
73#endif /* !defined(_DLFCN_H_) */
74