cpython/Include/internal/pycore_global_objects.h

#ifndef Py_INTERNAL_GLOBAL_OBJECTS_H
#define Py_INTERNAL_GLOBAL_OBJECTS_H
#ifdef __cplusplus
extern "C" {
#endif

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

#include "pycore_context.h"         // _PyContextTokenMissing
#include "pycore_gc.h"              // _PyGC_Head_UNUSED
#include "pycore_global_strings.h"  // struct _Py_global_strings
#include "pycore_hamt.h"            // PyHamtNode_Bitmap
#include "pycore_hashtable.h"       // _Py_hashtable_t
#include "pycore_typeobject.h"      // pytype_slotdef


// These would be in pycore_long.h if it weren't for an include cycle.
#define _PY_NSMALLPOSINTS
#define _PY_NSMALLNEGINTS


// Only immutable objects should be considered runtime-global.
// All others must be per-interpreter.

#define _Py_GLOBAL_OBJECT(NAME)
#define _Py_SINGLETON(NAME)

struct _Py_cached_objects {};

struct _Py_static_objects {};

#define _Py_INTERP_CACHED_OBJECT(interp, NAME)

struct _Py_interp_cached_objects {};

#define _Py_INTERP_STATIC_OBJECT(interp, NAME)
#define _Py_INTERP_SINGLETON(interp, NAME)

struct _Py_interp_static_objects {};


#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_H */