17db96d56Sopenharmony_ci#ifndef Py_INTERNAL_LIFECYCLE_H 27db96d56Sopenharmony_ci#define Py_INTERNAL_LIFECYCLE_H 37db96d56Sopenharmony_ci#ifdef __cplusplus 47db96d56Sopenharmony_ciextern "C" { 57db96d56Sopenharmony_ci#endif 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE 87db96d56Sopenharmony_ci# error "this header requires Py_BUILD_CORE define" 97db96d56Sopenharmony_ci#endif 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci#include "pycore_runtime.h" // _PyRuntimeState 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci/* Forward declarations */ 147db96d56Sopenharmony_cistruct _PyArgv; 157db96d56Sopenharmony_cistruct pyruntimestate; 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_ci/* True if the main interpreter thread exited due to an unhandled 187db96d56Sopenharmony_ci * KeyboardInterrupt exception, suggesting the user pressed ^C. */ 197db96d56Sopenharmony_ciPyAPI_DATA(int) _Py_UnhandledKeyboardInterrupt; 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ciextern int _Py_SetFileSystemEncoding( 227db96d56Sopenharmony_ci const char *encoding, 237db96d56Sopenharmony_ci const char *errors); 247db96d56Sopenharmony_ciextern void _Py_ClearFileSystemEncoding(void); 257db96d56Sopenharmony_ciextern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate); 267db96d56Sopenharmony_ci#ifdef MS_WINDOWS 277db96d56Sopenharmony_ciextern int _PyUnicode_EnableLegacyWindowsFSEncoding(void); 287db96d56Sopenharmony_ci#endif 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ciPyAPI_FUNC(void) _Py_ClearStandardStreamEncoding(void); 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ciPyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc); 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci/* Various one-time initializers */ 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ciextern PyStatus _PyFaulthandler_Init(int enable); 377db96d56Sopenharmony_ciextern int _PyTraceMalloc_Init(int enable); 387db96d56Sopenharmony_ciextern PyObject * _PyBuiltin_Init(PyInterpreterState *interp); 397db96d56Sopenharmony_ciextern PyStatus _PySys_Create( 407db96d56Sopenharmony_ci PyThreadState *tstate, 417db96d56Sopenharmony_ci PyObject **sysmod_p); 427db96d56Sopenharmony_ciextern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options); 437db96d56Sopenharmony_ciextern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config); 447db96d56Sopenharmony_ciextern int _PySys_UpdateConfig(PyThreadState *tstate); 457db96d56Sopenharmony_ciextern void _PySys_Fini(PyInterpreterState *interp); 467db96d56Sopenharmony_ciextern int _PyBuiltins_AddExceptions(PyObject * bltinmod); 477db96d56Sopenharmony_ciextern PyStatus _Py_HashRandomization_Init(const PyConfig *); 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ciextern PyStatus _PyImportZip_Init(PyThreadState *tstate); 507db96d56Sopenharmony_ciextern PyStatus _PyGC_Init(PyInterpreterState *interp); 517db96d56Sopenharmony_ciextern PyStatus _PyAtExit_Init(PyInterpreterState *interp); 527db96d56Sopenharmony_ciextern int _Py_Deepfreeze_Init(void); 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ci/* Various internal finalizers */ 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ciextern int _PySignal_Init(int install_signal_handlers); 577db96d56Sopenharmony_ciextern void _PySignal_Fini(void); 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ciextern void _PyImport_Fini(void); 607db96d56Sopenharmony_ciextern void _PyImport_Fini2(void); 617db96d56Sopenharmony_ciextern void _PyGC_Fini(PyInterpreterState *interp); 627db96d56Sopenharmony_ciextern void _Py_HashRandomization_Fini(void); 637db96d56Sopenharmony_ciextern void _PyFaulthandler_Fini(void); 647db96d56Sopenharmony_ciextern void _PyHash_Fini(void); 657db96d56Sopenharmony_ciextern void _PyTraceMalloc_Fini(void); 667db96d56Sopenharmony_ciextern void _PyWarnings_Fini(PyInterpreterState *interp); 677db96d56Sopenharmony_ciextern void _PyAST_Fini(PyInterpreterState *interp); 687db96d56Sopenharmony_ciextern void _PyAtExit_Fini(PyInterpreterState *interp); 697db96d56Sopenharmony_ciextern void _PyThread_FiniType(PyInterpreterState *interp); 707db96d56Sopenharmony_ciextern void _Py_Deepfreeze_Fini(void); 717db96d56Sopenharmony_ciextern void _PyArg_Fini(void); 727db96d56Sopenharmony_ci 737db96d56Sopenharmony_ciextern PyStatus _PyGILState_Init(_PyRuntimeState *runtime); 747db96d56Sopenharmony_ciextern PyStatus _PyGILState_SetTstate(PyThreadState *tstate); 757db96d56Sopenharmony_ciextern void _PyGILState_Fini(PyInterpreterState *interp); 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ciPyAPI_FUNC(void) _PyGC_DumpShutdownStats(PyInterpreterState *interp); 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_ciPyAPI_FUNC(PyStatus) _Py_PreInitializeFromPyArgv( 807db96d56Sopenharmony_ci const PyPreConfig *src_config, 817db96d56Sopenharmony_ci const struct _PyArgv *args); 827db96d56Sopenharmony_ciPyAPI_FUNC(PyStatus) _Py_PreInitializeFromConfig( 837db96d56Sopenharmony_ci const PyConfig *config, 847db96d56Sopenharmony_ci const struct _PyArgv *args); 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ciPyAPI_FUNC(wchar_t *) _Py_GetStdlibDir(void); 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ciPyAPI_FUNC(int) _Py_HandleSystemExit(int *exitcode_p); 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable); 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ciPyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate); 937db96d56Sopenharmony_ciPyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception, 947db96d56Sopenharmony_ci PyObject *value, PyObject *tb); 957db96d56Sopenharmony_ci 967db96d56Sopenharmony_ciPyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate); 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ciextern void _PyAtExit_Call(PyInterpreterState *interp); 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ci#ifdef __cplusplus 1017db96d56Sopenharmony_ci} 1027db96d56Sopenharmony_ci#endif 1037db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_LIFECYCLE_H */ 104