xref: /illumos-gate/usr/src/cmd/ast/libdll/amd64/FEATURE/dll (revision d48be21240dfd051b689384ce2b23479d757f2d8)
1
2/* : : generated by proto : : */
3/* : : generated from contrib/ast/src/lib/libdll/features/dll by iffe version 2012-07-17 : : */
4
5#ifndef _def_dll_dll
6#if !defined(__PROTO__)
7#  if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
8#    if defined(__cplusplus)
9#      define __LINKAGE__	"C"
10#    else
11#      define __LINKAGE__
12#    endif
13#    define __STDARG__
14#    define __PROTO__(x)	x
15#    define __OTORP__(x)
16#    define __PARAM__(n,o)	n
17#    if !defined(__STDC__) && !defined(__cplusplus)
18#      if !defined(c_plusplus)
19#      	define const
20#      endif
21#      define signed
22#      define void		int
23#      define volatile
24#      define __V_		char
25#    else
26#      define __V_		void
27#    endif
28#  else
29#    define __PROTO__(x)	()
30#    define __OTORP__(x)	x
31#    define __PARAM__(n,o)	o
32#    define __LINKAGE__
33#    define __V_		char
34#    define const
35#    define signed
36#    define void		int
37#    define volatile
38#  endif
39#  define __MANGLE__	__LINKAGE__
40#  if defined(__cplusplus) || defined(c_plusplus)
41#    define __VARARG__	...
42#  else
43#    define __VARARG__
44#  endif
45#  if defined(__STDARG__)
46#    define __VA_START__(p,a)	va_start(p,a)
47#  else
48#    define __VA_START__(p,a)	va_start(p)
49#  endif
50#  if !defined(__INLINE__)
51#    if defined(__cplusplus)
52#      define __INLINE__	extern __MANGLE__ inline
53#    else
54#      if defined(_WIN32) && !defined(__GNUC__)
55#      	define __INLINE__	__inline
56#      endif
57#    endif
58#  endif
59#endif
60#if !defined(__LINKAGE__)
61#define __LINKAGE__		/* 2004-08-11 transition */
62#endif
63
64#define _def_dll_dll	1
65#define _sys_types	1	/* #include <sys/types.h> ok */
66#define _hdr_dlfcn	1	/* #include <dlfcn.h> ok */
67#define _LIB_dl	1	/* -ldl is a library */
68#define _lib_dlopen	1	/* dlopen() in default lib(s) */
69#define _DLL_NEXT_PATH	"/usr/lib/libc.so.1"
70
71#if defined(__MVS__) && !defined(__SUSV3)
72#define __SUSV3		1
73#endif
74#include <dlfcn.h>
75
76#define DLL_INFO_PREVER	0x0001	/* pre-suffix style version */
77#define DLL_INFO_DOTVER	0x0002	/* post-suffix style version */
78
79typedef unsigned long (*Dll_plugin_version_f) __PROTO__((void));
80typedef int (*Dllerror_f) __PROTO__((__V_*, __V_*, int, ...));
81
82typedef struct Dllinfo_s
83{
84	char**	sibling;	/* sibling dirs on $PATH */
85	char*	prefix;		/* library name prefix */
86	char*	suffix;		/* library name suffix */
87	char*	env;		/* library path env var */
88	int	flags;		/* DLL_INFO_* flags */
89#ifdef _DLLINFO_PRIVATE_
90	_DLLINFO_PRIVATE_
91#endif
92} Dllinfo_t;
93
94typedef struct Dllnames_s
95{
96	char*		id;
97	char*		name;
98	char*		base;
99	char*		type;
100	char*		opts;
101	char*		path;
102	char		data[1024];
103} Dllnames_t;
104
105typedef struct Dllent_s
106{
107	char*		path;
108	char*		name;
109#ifdef _DLLENT_PRIVATE_
110	_DLLENT_PRIVATE_
111#endif
112} Dllent_t;
113
114typedef struct Dllscan_s
115{
116	__V_*		pad;
117#ifdef _DLLSCAN_PRIVATE_
118	_DLLSCAN_PRIVATE_
119#endif
120} Dllscan_t;
121
122#if _BLD_dll && defined(__EXPORT__)
123#undef __MANGLE__
124#define __MANGLE__ __LINKAGE__          __EXPORT__
125#endif
126
127extern __MANGLE__ Dllinfo_t*	dllinfo __PROTO__((void));
128extern __MANGLE__ __V_*		dllplugin __PROTO__((const char*, const char*, const char*, unsigned long, unsigned long*, int, char*, size_t));
129extern __MANGLE__ __V_*		dllplug __PROTO__((const char*, const char*, const char*, int, char*, size_t));
130extern __MANGLE__ __V_*		dllfind __PROTO__((const char*, const char*, int, char*, size_t));
131extern __MANGLE__ Dllnames_t*	dllnames __PROTO__((const char*, const char*, Dllnames_t*));
132extern __MANGLE__ __V_*		dll_lib __PROTO__((Dllnames_t*, unsigned long, Dllerror_f, __V_*));
133extern __MANGLE__ __V_*		dllmeth __PROTO__((const char*, const char*, unsigned long));
134extern __MANGLE__ __V_*		dllopen __PROTO__((const char*, int));
135extern __MANGLE__ __V_*		dllnext __PROTO__((int));
136extern __MANGLE__ __V_*		dlllook __PROTO__((__V_*, const char*));
137extern __MANGLE__ int		dllcheck __PROTO__((__V_*, const char*, unsigned long, unsigned long*));
138extern __MANGLE__ unsigned long	dllversion __PROTO__((__V_*, const char*));
139extern __MANGLE__ char*		dllerror __PROTO__((int));
140
141extern __MANGLE__ Dllscan_t*	dllsopen __PROTO__((const char*, const char*, const char*));
142extern __MANGLE__ Dllent_t*	dllsread __PROTO__((Dllscan_t*));
143extern __MANGLE__ int		dllsclose __PROTO__((Dllscan_t*));
144
145#undef __MANGLE__
146#define __MANGLE__ __LINKAGE__
147
148#endif
149