#include "nodes/nodes.h"
 
-/*
- * A memory context can have callback functions registered on it.  Any such
- * function will be called once just before the context is next reset or
- * deleted.  The MemoryContextCallback struct describing such a callback
- * typically would be allocated within the context itself, thereby avoiding
- * any need to manage it explicitly (the reset/delete action will free it).
- */
-typedef void (*MemoryContextCallbackFunction) (void *arg);
-
-typedef struct MemoryContextCallback
-{
-   MemoryContextCallbackFunction func; /* function to call */
-   void       *arg;            /* argument to pass it */
-   struct MemoryContextCallback *next; /* next in list of callbacks */
-} MemoryContextCallback;
-
 /*
  * MemoryContext
  *     A logical context in which memory allocations occur.
 
 extern void MemoryContextResetOnly(MemoryContext context);
 extern void MemoryContextResetChildren(MemoryContext context);
 extern void MemoryContextDeleteChildren(MemoryContext context);
-extern void MemoryContextRegisterResetCallback(MemoryContext context,
-                                  MemoryContextCallback *cb);
 extern void MemoryContextSetParent(MemoryContext context,
                       MemoryContext new_parent);
 extern Size GetMemoryChunkSpace(void *pointer);
 
  */
 typedef struct MemoryContextData *MemoryContext;
 
+/*
+ * A memory context can have callback functions registered on it.  Any such
+ * function will be called once just before the context is next reset or
+ * deleted.  The MemoryContextCallback struct describing such a callback
+ * typically would be allocated within the context itself, thereby avoiding
+ * any need to manage it explicitly (the reset/delete action will free it).
+ */
+typedef void (*MemoryContextCallbackFunction) (void *arg);
+
+typedef struct MemoryContextCallback
+{
+   MemoryContextCallbackFunction func; /* function to call */
+   void       *arg;            /* argument to pass it */
+   struct MemoryContextCallback *next; /* next in list of callbacks */
+} MemoryContextCallback;
+
 /*
  * CurrentMemoryContext is the default allocation context for palloc().
  * Avoid accessing it directly!  Instead, use MemoryContextSwitchTo()
 #endif   /* PG_USE_INLINE || MCXT_INCLUDE_DEFINITIONS */
 #endif   /* FRONTEND */
 
+/* Registration of memory context reset/delete callbacks */
+extern void MemoryContextRegisterResetCallback(MemoryContext context,
+                                  MemoryContextCallback *cb);
+
 /*
  * These are like standard strdup() except the copied string is
  * allocated in a context, not with malloc().