#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().
1.7.1