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