#include "postgres.h"
#include <mach-o/dyld.h>
#include "dynloader.h"
Go to the source code of this file.
Functions | |
void * | pg_dlopen (char *filename) |
void | pg_dlclose (void *handle) |
PGFunction | pg_dlsym (void *handle, char *funcname) |
char * | pg_dlerror (void) |
Variables | |
static NSObjectFileImageReturnCode | cofiff_result = NSObjectFileImageFailure |
void pg_dlclose | ( | void * | handle | ) |
char* pg_dlerror | ( | void | ) |
Definition at line 97 of file darwin.c.
{ NSLinkEditErrors c; int errorNumber; const char *fileName; const char *errorString = NULL; switch (cofiff_result) { case NSObjectFileImageSuccess: /* must have failed in NSLinkModule */ NSLinkEditError(&c, &errorNumber, &fileName, &errorString); if (errorString == NULL || *errorString == '\0') errorString = "unknown link-edit failure"; break; case NSObjectFileImageFailure: errorString = "failed to open object file"; break; case NSObjectFileImageInappropriateFile: errorString = "inappropriate object file"; break; case NSObjectFileImageArch: errorString = "object file is for wrong architecture"; break; case NSObjectFileImageFormat: errorString = "object file has wrong format"; break; case NSObjectFileImageAccess: errorString = "insufficient permissions for object file"; break; default: errorString = "unknown failure to open object file"; break; } return (char *) errorString; }
void* pg_dlopen | ( | char * | filename | ) |
Definition at line 57 of file darwin.c.
{ NSObjectFileImage image; cofiff_result = NSCreateObjectFileImageFromFile(filename, &image); if (cofiff_result != NSObjectFileImageSuccess) return NULL; return NSLinkModule(image, filename, NSLINKMODULE_OPTION_BINDNOW | NSLINKMODULE_OPTION_RETURN_ON_ERROR); }
PGFunction pg_dlsym | ( | void * | handle, | |
char * | funcname | |||
) |
Definition at line 76 of file darwin.c.
{ NSSymbol symbol; char *symname = (char *) malloc(strlen(funcname) + 2); sprintf(symname, "_%s", funcname); if (NSIsSymbolNameDefined(symname)) { symbol = NSLookupAndBindSymbol(symname); free(symname); return (PGFunction) NSAddressOfSymbol(symbol); } else { free(symname); return NULL; } }
NSObjectFileImageReturnCode cofiff_result = NSObjectFileImageFailure [static] |
Definition at line 54 of file darwin.c.
Referenced by pg_dlerror(), and pg_dlopen().