bool closed;
} PyTdbObject;
-PyAPI_DATA(PyTypeObject) PyTdb;
+extern PyTypeObject PyTdb;
static void PyErr_SetTDBError(TDB_CONTEXT *tdb)
{
#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
#endif
-PyAPI_DATA(PyTypeObject) nbt_node_Type;
+extern PyTypeObject nbt_node_Type;
typedef struct {
PyObject_HEAD
#include "auth/credentials/credentials.h"
#include "lib/talloc/pytalloc.h"
-PyAPI_DATA(PyTypeObject) PyCredentials;
-PyAPI_DATA(PyTypeObject) PyCredentialCacheContainer;
+extern PyTypeObject PyCredentials;
+extern PyTypeObject PyCredentialCacheContainer;
typedef struct {
PyObject_HEAD
TALLOC_CTX *mem_ctx;
static PyObject *PyExc_LdbError;
-PyAPI_DATA(PyTypeObject) PyLdbMessage;
-PyAPI_DATA(PyTypeObject) PyLdbModule;
-PyAPI_DATA(PyTypeObject) PyLdbDn;
-PyAPI_DATA(PyTypeObject) PyLdb;
-PyAPI_DATA(PyTypeObject) PyLdbMessageElement;
-PyAPI_DATA(PyTypeObject) PyLdbTree;
+extern PyTypeObject PyLdbMessage;
+extern PyTypeObject PyLdbModule;
+extern PyTypeObject PyLdbDn;
+extern PyTypeObject PyLdb;
+extern PyTypeObject PyLdbMessageElement;
+extern PyTypeObject PyLdbTree;
static PyObject *PyLdb_FromLdbContext(struct ldb_context *ldb_ctx);
#include "librpc/rpc/dcerpc.h"
#include "librpc/gen_ndr/server_id.h"
-PyAPI_DATA(PyTypeObject) messaging_Type;
+extern PyTypeObject messaging_Type;
static bool server_id_from_py(PyObject *object, struct server_id *server_id)
{
#include "auth/credentials/pycredentials.h"
#include "param/pyparam.h"
-PyAPI_DATA(PyTypeObject) PyRegistryKey;
-PyAPI_DATA(PyTypeObject) PyRegistry;
-PyAPI_DATA(PyTypeObject) PyHiveKey;
+extern PyTypeObject PyRegistryKey;
+extern PyTypeObject PyRegistry;
+extern PyTypeObject PyHiveKey;
/*#define PyRegistryKey_AsRegistryKey(obj) py_talloc_get_type(obj, struct registry_key)*/
#define PyRegistry_AsRegistryContext(obj) ((struct registry_context *)py_talloc_get_ptr(obj))
#include "librpc/rpc/pyrpc.h"
-/* This macro is only provided by Python >= 2.3 */
-#ifndef PyAPI_DATA
-# define PyAPI_DATA(RTYPE) extern RTYPE
-#endif
-
#define PyErr_FromNdrError(err) Py_BuildValue("(is)", err, ndr_map_error2string(err))
#define PyErr_SetNdrError(err) \
#define PyLoadparmContext_AsLoadparmContext(obj) py_talloc_get_type(obj, struct loadparm_context)
#define PyLoadparmService_AsLoadparmService(obj) py_talloc_get_type(obj, struct loadparm_service)
-PyAPI_DATA(PyTypeObject) PyLoadparmContext;
-PyAPI_DATA(PyTypeObject) PyLoadparmService;
+extern PyTypeObject PyLoadparmContext;
+extern PyTypeObject PyLoadparmService;
PyObject *PyLoadparmService_FromService(struct loadparm_service *service)
{