From 7a7e0240ea84715b987345fb89daa24149a1af0a Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 2 Oct 2000 17:16:01 +0000 Subject: Here is the first batch of files and diffs for the BeOS port. I've run into problems with some bits of it, but when all the patches are in it'll build and we can fix it from there :) I've got a version that builds and runs and that is the basis for these patches. The first file has the new additional files that are required, template/beos backend/port/dynloader/beos.c backend/port/dynloader/beos.h include/port/beos.h makefiles/Makefile.beos The second is a tarball of diffs against a few files. I've added sys/ipc.h to configure and config.h via configure.in and config.h.in and then started adding the check as this file isn't needed on BeOS and having loads of #ifdef BEOS isn't as obvious as #ifdef HAVE_SYS_IPC_H and isn't as autconf'ish :) Files touched are include/c.h configure.in include/config.h.in include/storage/ipc.h include/utils/int8.h Let me know how these go. I'll await a response before submitting any more. Any problems just get in touch. David Reid --- src/backend/port/dynloader/beos.c | 60 +++++++++++++++++++++++++++++++++++++++ src/backend/port/dynloader/beos.h | 33 +++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 src/backend/port/dynloader/beos.c create mode 100644 src/backend/port/dynloader/beos.h (limited to 'src/backend') 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 +#include +#include + +#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 */ -- cgit v1.2.1