diff options
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/port/dynloader/beos.c | 60 | ||||
| -rw-r--r-- | src/backend/port/dynloader/beos.h | 33 |
2 files changed, 93 insertions, 0 deletions
diff --git a/src/backend/port/dynloader/beos.c b/src/backend/port/dynloader/beos.c new file mode 100644 index 0000000000..c2a6b78845 --- /dev/null +++ b/src/backend/port/dynloader/beos.c @@ -0,0 +1,60 @@ +/*------------------------------------------------------------------------- + * + * dynloader.c + * Dynamic Loader for Postgres for BeOS + * + * Portions Copyright (c) 1996-2000, PostgreSQL, Inc + * Portions Copyright (c) 1994, Regents of the University of California + * + * + * IDENTIFICATION + * $Header: /cvsroot/pgsql/src/backend/port/dynloader/Attic/beos.c,v 1.1 2000/10/02 17:15:53 momjian Exp $ + * + *------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include <kernel/OS.h> +#include <image.h> +#include <errno.h> + +#include "dynloader.h" + +extern char pg_pathname[]; + +void * +beos_dlopen(const char *filename) +{ + image_id id = -1; + + if ((id = load_add_on(filename)) < 0) + return NULL; + + return (void *) id; +} + +void +beos_dlclose(void *handle) +{ + image_id id = (image_id) handle; + unload_add_on(id); + return; +} + +void * +beos_dlsym(void *handle, const char *name) +{ + image_id id = (image_id)handle; + void *addr; + + if (get_image_symbol(id, name, B_SYMBOL_TYPE_ANY, &addr) != B_OK) + return NULL; + + return addr; +} + +char * +beos_dlerror() +{ + return (char *)strerror(errno); +} diff --git a/src/backend/port/dynloader/beos.h b/src/backend/port/dynloader/beos.h new file mode 100644 index 0000000000..3765ff0629 --- /dev/null +++ b/src/backend/port/dynloader/beos.h @@ -0,0 +1,33 @@ +/*------------------------------------------------------------------------- + * + * port_protos.h + * port-specific prototypes for BeOS + * + * + * Portions Copyright (c) 1996-2000, PostgreSQL, Inc + * Portions Copyright (c) 1994, Regents of the University of California + * + * $Id: beos.h,v 1.1 2000/10/02 17:15:53 momjian Exp $ + * + *------------------------------------------------------------------------- + */ +#ifndef PORT_PROTOS_H +#define PORT_PROTOS_H + +#include "postgres.h" + +#include "fmgr.h" +#include "utils/dynamic_loader.h" + +char *beos_dlerror(void); +void *beos_dlopen(const char *filename); +void *beos_dlsym(void *handle, const char *name); +void beos_dlclose(void *handle); + +#define pg_dlopen(f) beos_dlopen(f) +#define pg_dlsym beos_dlsym +#define pg_dlclose beos_dlclose +#define pg_dlerror beos_dlerror + + +#endif /* PORT_PROTOS_H */ |
