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