diff options
Diffstat (limited to 'src/include/pgmagic.h')
-rw-r--r-- | src/include/pgmagic.h | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/include/pgmagic.h b/src/include/pgmagic.h deleted file mode 100644 index 456804618c2..00000000000 --- a/src/include/pgmagic.h +++ /dev/null @@ -1,73 +0,0 @@ -/*------------------------------------------------------------------------- - * - * pgmagic.h - * Defines a magic block that can mark a module in a way so show that - * it is compatible with the server it is being loaded into. - * - * This file is intended to be included into modules that wish to load - * themselves into the backend. All they need to do is include this header - * into one of the source files and include the line: - * - * PG_MODULE_MAGIC; - * - * The trailing semi-colon is optional. To work with versions of PostgreSQL - * that do not support this, you may put an #ifdef/endif block around it. - * - * Note, there is space available, particularly in the bitfield part. If it - * turns out that a change has happened within a major release that would - * require all modules to be recompiled, just setting one unused bit there - * will do the trick. - * - * Originally written by Martijn van Oosterhout <kleptog@svana.org> - * - * $PostgreSQL: pgsql/src/include/pgmagic.h,v 1.1 2006/05/30 14:09:32 momjian Exp $ - * - *------------------------------------------------------------------------- - */ - -#ifndef PGMAGIC_H -#define PGMAGIC_H - -#include "c.h" - -/* The main structure in which the magic is stored. the length field is used - * to detect major changes */ - -typedef struct { - int len; - int version; - int magic; -} Pg_magic_struct; - -/* Declare the module magic function. It needs to be a function as the dlsym - * in the backend is only guarenteed to work on functions, not data */ - -typedef Pg_magic_struct *(*PGModuleMagicFunction) (void); - -#define PG_MAGIC_FUNCTION_NAME Pg_magic_func -#define PG_MAGIC_FUNCTION_NAME_STRING "Pg_magic_func" - -#define PG_MODULE_MAGIC \ -extern DLLIMPORT Pg_magic_struct *PG_MAGIC_FUNCTION_NAME(void); \ -Pg_magic_struct * \ -PG_MAGIC_FUNCTION_NAME(void) \ -{ \ - static Pg_magic_struct Pg_magic_data = PG_MODULE_MAGIC_DATA; \ - return &Pg_magic_data; \ -} - - /* Common user adjustable constants */ -#define PG_MODULE_MAGIC_CONST \ - ((INDEX_MAX_KEYS << 0) + \ - (FUNC_MAX_ARGS << 8) + \ - (NAMEDATALEN << 16)) - -/* Finally, the actual data block */ -#define PG_MODULE_MAGIC_DATA \ -{ \ - sizeof(Pg_magic_struct), \ - PG_VERSION_NUM / 100, /* Major version of postgres */ \ - PG_MODULE_MAGIC_CONST, /* Constants users can configure */ \ -} - -#endif /* PGMAGIC_H */ |