17db96d56Sopenharmony_ci#ifndef Py_INTERNAL_EXCEPTIONS_H 27db96d56Sopenharmony_ci#define Py_INTERNAL_EXCEPTIONS_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 127db96d56Sopenharmony_ci/* runtime lifecycle */ 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ciextern PyStatus _PyExc_InitState(PyInterpreterState *); 157db96d56Sopenharmony_ciextern PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *); 167db96d56Sopenharmony_ciextern int _PyExc_InitTypes(PyInterpreterState *); 177db96d56Sopenharmony_ciextern void _PyExc_Fini(PyInterpreterState *); 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci/* other API */ 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_cistruct _Py_exc_state { 237db96d56Sopenharmony_ci // The dict mapping from errno codes to OSError subclasses 247db96d56Sopenharmony_ci PyObject *errnomap; 257db96d56Sopenharmony_ci PyBaseExceptionObject *memerrors_freelist; 267db96d56Sopenharmony_ci int memerrors_numfree; 277db96d56Sopenharmony_ci // The ExceptionGroup type 287db96d56Sopenharmony_ci PyObject *PyExc_ExceptionGroup; 297db96d56Sopenharmony_ci}; 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ciextern void _PyExc_ClearExceptionGroupType(PyInterpreterState *); 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci#ifdef __cplusplus 357db96d56Sopenharmony_ci} 367db96d56Sopenharmony_ci#endif 377db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_EXCEPTIONS_H */ 38