#include "utils/builtins.h"
#include "utils/datetime.h"
#include "utils/guc.h"
+#include "utils/injection_point.h"
#include "utils/memutils.h"
#include "utils/timestamp.h"
void *UsedShmemSegAddr;
slock_t *ShmemLock;
struct bkend *ShmemBackendArray;
+#ifdef USE_INJECTION_POINTS
+ struct InjectionPointsCtl *ActiveInjectionPoints;
+#endif
#ifndef HAVE_SPINLOCKS
PGSemaphore *SpinlockSemaArray;
#endif
param->ShmemLock = ShmemLock;
param->ShmemBackendArray = ShmemBackendArray;
+#ifdef USE_INJECTION_POINTS
+ param->ActiveInjectionPoints = ActiveInjectionPoints;
+#endif
+
#ifndef HAVE_SPINLOCKS
param->SpinlockSemaArray = SpinlockSemaArray;
#endif
ShmemLock = param->ShmemLock;
ShmemBackendArray = param->ShmemBackendArray;
+#ifdef USE_INJECTION_POINTS
+ ActiveInjectionPoints = param->ActiveInjectionPoints;
+#endif
+
#ifndef HAVE_SPINLOCKS
SpinlockSemaArray = param->SpinlockSemaArray;
#endif
InjectionPointEntry entries[MAX_INJECTION_POINTS];
} InjectionPointsCtl;
-static InjectionPointsCtl *ActiveInjectionPoints;
+NON_EXEC_STATIC InjectionPointsCtl *ActiveInjectionPoints;
/*
* Backend local cache of injection callbacks already loaded, stored in
extern void InjectionPointRun(const char *name);
extern bool InjectionPointDetach(const char *name);
+#ifdef EXEC_BACKEND
+extern PGDLLIMPORT struct InjectionPointsCtl *ActiveInjectionPoints;
+#endif
+
#endif /* INJECTION_POINT_H */