diff options
Diffstat (limited to 'src/backend/port/dynloader/aix.h')
-rw-r--r-- | src/backend/port/dynloader/aix.h | 70 |
1 files changed, 23 insertions, 47 deletions
diff --git a/src/backend/port/dynloader/aix.h b/src/backend/port/dynloader/aix.h index 29d385986e1..e4c82ad1281 100644 --- a/src/backend/port/dynloader/aix.h +++ b/src/backend/port/dynloader/aix.h @@ -1,63 +1,39 @@ -/* - * $PostgreSQL: pgsql/src/backend/port/dynloader/aix.h,v 1.13 2005/10/15 02:49:23 momjian Exp $ +/*------------------------------------------------------------------------- + * + * aix.h + * prototypes for AIX-specific routines + * + * + * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California * - * @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52 - * This is an unpublished work copyright (c) 1992 HELIOS Software GmbH - * 30159 Hannover, Germany + * $PostgreSQL: pgsql/src/backend/port/dynloader/aix.h,v 1.14 2009/04/21 21:15:50 tgl Exp $ + * + *------------------------------------------------------------------------- */ #ifndef PORT_PROTOS_H #define PORT_PROTOS_H -#ifdef HAVE_DLOPEN - #include <dlfcn.h> -#else /* HAVE_DLOPEN */ - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* - * Mode flags for the dlopen routine. - */ -#define RTLD_LAZY 1 /* lazy function call binding */ -#define RTLD_NOW 2 /* immediate function call binding */ -#define RTLD_GLOBAL 0x100 /* allow symbols to be global */ +#include "utils/dynamic_loader.h" /* - * To be able to intialize, a library may provide a dl_info structure - * that contains functions to be called to initialize and terminate. + * In some older systems, the RTLD_NOW flag isn't defined and the mode + * argument to dlopen must always be 1. The RTLD_GLOBAL flag is wanted + * if available, but it doesn't exist everywhere. + * If it doesn't exist, set it to 0 so it has no effect. */ -struct dl_info -{ - void (*init) (void); - void (*fini) (void); -}; - -#if __STDC__ || defined(_IBMR2) -void *dlopen(const char *path, int mode); -void *dlsym(void *handle, const char *symbol); -char *dlerror(void); -int dlclose(void *handle); -#else -void *dlopen(); -void *dlsym(); -char *dlerror(); -int dlclose(); +#ifndef RTLD_NOW +#define RTLD_NOW 1 #endif - -#ifdef __cplusplus -} +#ifndef RTLD_GLOBAL +#define RTLD_GLOBAL 0 #endif -#endif /* HAVE_DLOPEN */ - -#include "utils/dynamic_loader.h" #define pg_dlopen(f) dlopen((f), RTLD_NOW | RTLD_GLOBAL) -#define pg_dlsym dlsym -#define pg_dlclose dlclose -#define pg_dlerror dlerror +#define pg_dlsym(h, f) ((PGFunction) dlsym(h, f)) +#define pg_dlclose(h) dlclose(h) +#define pg_dlerror() dlerror() #endif /* PORT_PROTOS_H */ |