mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
gh-125604: Move _Py_AuditHookEntry, etc. Out of pycore_runtime.h (gh-125605)
This is essentially a cleanup, moving a handful of API declarations to the header files where they fit best, creating new ones when needed. We do the following: * add pycore_debug_offsets.h and move _Py_DebugOffsets, etc. there * inline struct _getargs_runtime_state and struct _gilstate_runtime_state in _PyRuntimeState * move struct _reftracer_runtime_state to the existing pycore_object_state.h * add pycore_audit.h and move to it _Py_AuditHookEntry , _PySys_Audit(), and _PySys_ClearAuditHooks * add audit.h and cpython/audit.h and move the existing audit-related API there *move the perfmap/trampoline API from cpython/sysmodule.h to cpython/ceval.h, and remove the now-empty cpython/sysmodule.h
This commit is contained in:
parent
2e950e3419
commit
6d93690954
26 changed files with 429 additions and 346 deletions
|
@ -9,6 +9,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#include "pycore_ceval_state.h" // _PyEval_RUNTIME_PERF_INIT
|
||||
#include "pycore_debug_offsets.h" // _Py_DebugOffsets_INIT()
|
||||
#include "pycore_faulthandler.h" // _faulthandler_runtime_state_INIT
|
||||
#include "pycore_floatobject.h" // _py_float_format_unknown
|
||||
#include "pycore_function.h"
|
||||
|
@ -32,111 +33,7 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
|
||||
#define _PyRuntimeState_INIT(runtime, debug_cookie) \
|
||||
{ \
|
||||
.debug_offsets = { \
|
||||
.cookie = debug_cookie, \
|
||||
.version = PY_VERSION_HEX, \
|
||||
.free_threaded = _Py_Debug_Free_Threaded, \
|
||||
.runtime_state = { \
|
||||
.size = sizeof(_PyRuntimeState), \
|
||||
.finalizing = offsetof(_PyRuntimeState, _finalizing), \
|
||||
.interpreters_head = offsetof(_PyRuntimeState, interpreters.head), \
|
||||
}, \
|
||||
.interpreter_state = { \
|
||||
.size = sizeof(PyInterpreterState), \
|
||||
.id = offsetof(PyInterpreterState, id), \
|
||||
.next = offsetof(PyInterpreterState, next), \
|
||||
.threads_head = offsetof(PyInterpreterState, threads.head), \
|
||||
.gc = offsetof(PyInterpreterState, gc), \
|
||||
.imports_modules = offsetof(PyInterpreterState, imports.modules), \
|
||||
.sysdict = offsetof(PyInterpreterState, sysdict), \
|
||||
.builtins = offsetof(PyInterpreterState, builtins), \
|
||||
.ceval_gil = offsetof(PyInterpreterState, ceval.gil), \
|
||||
.gil_runtime_state = offsetof(PyInterpreterState, _gil), \
|
||||
.gil_runtime_state_enabled = _Py_Debug_gilruntimestate_enabled, \
|
||||
.gil_runtime_state_locked = offsetof(PyInterpreterState, _gil.locked), \
|
||||
.gil_runtime_state_holder = offsetof(PyInterpreterState, _gil.last_holder), \
|
||||
}, \
|
||||
.thread_state = { \
|
||||
.size = sizeof(PyThreadState), \
|
||||
.prev = offsetof(PyThreadState, prev), \
|
||||
.next = offsetof(PyThreadState, next), \
|
||||
.interp = offsetof(PyThreadState, interp), \
|
||||
.current_frame = offsetof(PyThreadState, current_frame), \
|
||||
.thread_id = offsetof(PyThreadState, thread_id), \
|
||||
.native_thread_id = offsetof(PyThreadState, native_thread_id), \
|
||||
.datastack_chunk = offsetof(PyThreadState, datastack_chunk), \
|
||||
.status = offsetof(PyThreadState, _status), \
|
||||
}, \
|
||||
.interpreter_frame = { \
|
||||
.size = sizeof(_PyInterpreterFrame), \
|
||||
.previous = offsetof(_PyInterpreterFrame, previous), \
|
||||
.executable = offsetof(_PyInterpreterFrame, f_executable), \
|
||||
.instr_ptr = offsetof(_PyInterpreterFrame, instr_ptr), \
|
||||
.localsplus = offsetof(_PyInterpreterFrame, localsplus), \
|
||||
.owner = offsetof(_PyInterpreterFrame, owner), \
|
||||
}, \
|
||||
.code_object = { \
|
||||
.size = sizeof(PyCodeObject), \
|
||||
.filename = offsetof(PyCodeObject, co_filename), \
|
||||
.name = offsetof(PyCodeObject, co_name), \
|
||||
.qualname = offsetof(PyCodeObject, co_qualname), \
|
||||
.linetable = offsetof(PyCodeObject, co_linetable), \
|
||||
.firstlineno = offsetof(PyCodeObject, co_firstlineno), \
|
||||
.argcount = offsetof(PyCodeObject, co_argcount), \
|
||||
.localsplusnames = offsetof(PyCodeObject, co_localsplusnames), \
|
||||
.localspluskinds = offsetof(PyCodeObject, co_localspluskinds), \
|
||||
.co_code_adaptive = offsetof(PyCodeObject, co_code_adaptive), \
|
||||
}, \
|
||||
.pyobject = { \
|
||||
.size = sizeof(PyObject), \
|
||||
.ob_type = offsetof(PyObject, ob_type), \
|
||||
}, \
|
||||
.type_object = { \
|
||||
.size = sizeof(PyTypeObject), \
|
||||
.tp_name = offsetof(PyTypeObject, tp_name), \
|
||||
.tp_repr = offsetof(PyTypeObject, tp_repr), \
|
||||
.tp_flags = offsetof(PyTypeObject, tp_flags), \
|
||||
}, \
|
||||
.tuple_object = { \
|
||||
.size = sizeof(PyTupleObject), \
|
||||
.ob_item = offsetof(PyTupleObject, ob_item), \
|
||||
.ob_size = offsetof(PyTupleObject, ob_base.ob_size), \
|
||||
}, \
|
||||
.list_object = { \
|
||||
.size = sizeof(PyListObject), \
|
||||
.ob_item = offsetof(PyListObject, ob_item), \
|
||||
.ob_size = offsetof(PyListObject, ob_base.ob_size), \
|
||||
}, \
|
||||
.dict_object = { \
|
||||
.size = sizeof(PyDictObject), \
|
||||
.ma_keys = offsetof(PyDictObject, ma_keys), \
|
||||
.ma_values = offsetof(PyDictObject, ma_values), \
|
||||
}, \
|
||||
.float_object = { \
|
||||
.size = sizeof(PyFloatObject), \
|
||||
.ob_fval = offsetof(PyFloatObject, ob_fval), \
|
||||
}, \
|
||||
.long_object = { \
|
||||
.size = sizeof(PyLongObject), \
|
||||
.lv_tag = offsetof(PyLongObject, long_value.lv_tag), \
|
||||
.ob_digit = offsetof(PyLongObject, long_value.ob_digit), \
|
||||
}, \
|
||||
.bytes_object = { \
|
||||
.size = sizeof(PyBytesObject), \
|
||||
.ob_size = offsetof(PyBytesObject, ob_base.ob_size), \
|
||||
.ob_sval = offsetof(PyBytesObject, ob_sval), \
|
||||
}, \
|
||||
.unicode_object = { \
|
||||
.size = sizeof(PyUnicodeObject), \
|
||||
.state = offsetof(PyUnicodeObject, _base._base.state), \
|
||||
.length = offsetof(PyUnicodeObject, _base._base.length), \
|
||||
.asciiobject_size = sizeof(PyASCIIObject), \
|
||||
}, \
|
||||
.gc = { \
|
||||
.size = sizeof(struct _gc_runtime_state), \
|
||||
.collecting = offsetof(struct _gc_runtime_state, collecting), \
|
||||
}, \
|
||||
}, \
|
||||
.debug_offsets = _Py_DebugOffsets_INIT(debug_cookie), \
|
||||
.allocators = { \
|
||||
.standard = _pymem_allocators_standard_INIT(runtime), \
|
||||
.debug = _pymem_allocators_debug_INIT, \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue