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