source: trunk/libs/newlib/src/newlib/libc/sys/linux/include/dlfcn.h

Last change on this file was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 3.1 KB
Line 
1/* User functions for run-time dynamic loading.
2   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
3   This file is part of the GNU C Library.
4
5   The GNU C Library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public
7   License as published by the Free Software Foundation; either
8   version 2.1 of the License, or (at your option) any later version.
9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; if not, write to the Free
17   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   02111-1307 USA.  */
19
20#ifndef _DLFCN_H
21#define _DLFCN_H 1
22
23#include <features.h>
24
25/* Collect various system dependent definitions and declarations.  */
26#include <sys/dlfcn.h>
27
28
29/* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT
30   the run-time address of the symbol called NAME in the next shared
31   object is returned.  The "next" relation is defined by the order
32   the shared objects were loaded.  */
33# define RTLD_NEXT      ((void *) -1l)
34
35/* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT
36   the run-time address of the symbol called NAME in the global scope
37   is returned.  */
38# define RTLD_DEFAULT   ((void *) 0)
39
40
41__BEGIN_DECLS
42
43/* Open the shared object FILE and map it in; return a handle that can be
44   passed to `dlsym' to get symbol values from it.  */
45extern void *dlopen (__const char *__file, int __mode) __THROW;
46
47/* Unmap and close a shared object opened by `dlopen'.
48   The handle cannot be used again after calling `dlclose'.  */
49extern int dlclose (void *__handle) __THROW;
50
51/* Find the run-time address in the shared object HANDLE refers to
52   of the symbol called NAME.  */
53extern void *dlsym (void *__restrict __handle,
54                    __const char *__restrict __name) __THROW;
55
56/* Find the run-time address in the shared object HANDLE refers to
57   of the symbol called NAME with VERSION.  */
58extern void *dlvsym (void *__restrict __handle,
59                     __const char *__restrict __name,
60                     __const char *__restrict __version) __THROW;
61
62/* When any of the above functions fails, call this function
63   to return a string describing the error.  Each call resets
64   the error string so that a following call returns null.  */
65extern char *dlerror (void) __THROW;
66
67
68/* Structure containing information about object searched using
69   `dladdr'.  */
70typedef struct
71{
72  __const char *dli_fname;      /* File name of defining object.  */
73  void *dli_fbase;              /* Load address of that object.  */
74  __const char *dli_sname;      /* Name of nearest symbol.  */
75  void *dli_saddr;              /* Exact value of nearest symbol.  */
76} Dl_info;
77
78/* Fill in *INFO with the following information about ADDRESS.
79   Returns 0 iff no shared object's segments contain that address.  */
80extern int dladdr (__const void *__address, Dl_info *__info) __THROW;
81
82__END_DECLS
83
84#endif  /* dlfcn.h */
Note: See TracBrowser for help on using the repository browser.