Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/**************************************************************************
2
 *
3
 * Copyright 2009 VMware, Inc.
4
 * All Rights Reserved.
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining a
7
 * copy of this software and associated documentation files (the
8
 * "Software"), to deal in the Software without restriction, including
9
 * without limitation the rights to use, copy, modify, merge, publish,
10
 * distribute, sub license, and/or sell copies of the Software, and to
11
 * permit persons to whom the Software is furnished to do so, subject to
12
 * the following conditions:
13
 *
14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
17
 * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
18
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
 * USE OR OTHER DEALINGS IN THE SOFTWARE.
21
 *
22
 * The above copyright notice and this permission notice (including the
23
 * next paragraph) shall be included in all copies or substantial portions
24
 * of the Software.
25
 *
26
 **************************************************************************/
27
 
28
 
29
#ifndef U_DL_H_
30
#define U_DL_H_
31
 
32
 
33
#include "pipe/p_config.h"
34
 
35
 
36
#if defined(PIPE_OS_WINDOWS)
37
#  define UTIL_DL_EXT ".dll"
38
#  define UTIL_DL_PREFIX ""
39
#elif defined(PIPE_OS_APPLE)
40
#  define UTIL_DL_EXT ".dylib"
41
#  define UTIL_DL_PREFIX "lib"
42
#else
43
#  define UTIL_DL_EXT ".so"
44
#  define UTIL_DL_PREFIX "lib"
45
#endif
46
 
47
 
48
struct util_dl_library;
49
 
50
 
51
typedef void (*util_dl_proc)(void);
52
 
53
 
54
/**
55
 * Open a library dynamically.
56
 */
57
struct util_dl_library *
58
util_dl_open(const char *filename);
59
 
60
 
61
/**
62
 * Lookup a function in a library.
63
 */
64
util_dl_proc
65
util_dl_get_proc_address(struct util_dl_library *library,
66
                         const char *procname);
67
 
68
 
69
/**
70
 * Close a library.
71
 */
72
void
73
util_dl_close(struct util_dl_library *library);
74
 
75
 
76
/**
77
 * Return most recent error message.
78
 */
79
const char *
80
util_dl_error(void);
81
 
82
 
83
#endif /* U_DL_H_ */