17db96d56Sopenharmony_ci// Define Py_NSIG constant for signal handling. 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci#ifndef Py_INTERNAL_SIGNAL_H 47db96d56Sopenharmony_ci#define Py_INTERNAL_SIGNAL_H 57db96d56Sopenharmony_ci#ifdef __cplusplus 67db96d56Sopenharmony_ciextern "C" { 77db96d56Sopenharmony_ci#endif 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE 107db96d56Sopenharmony_ci# error "this header requires Py_BUILD_CORE define" 117db96d56Sopenharmony_ci#endif 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci#include <signal.h> // NSIG 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci#ifdef _SIG_MAXSIG 167db96d56Sopenharmony_ci // gh-91145: On FreeBSD, <signal.h> defines NSIG as 32: it doesn't include 177db96d56Sopenharmony_ci // realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For 187db96d56Sopenharmony_ci // example on x86-64 FreeBSD 13, SIGRTMAX is 126 and _SIG_MAXSIG is 128. 197db96d56Sopenharmony_ci# define Py_NSIG _SIG_MAXSIG 207db96d56Sopenharmony_ci#elif defined(NSIG) 217db96d56Sopenharmony_ci# define Py_NSIG NSIG 227db96d56Sopenharmony_ci#elif defined(_NSIG) 237db96d56Sopenharmony_ci# define Py_NSIG _NSIG // BSD/SysV 247db96d56Sopenharmony_ci#elif defined(_SIGMAX) 257db96d56Sopenharmony_ci# define Py_NSIG (_SIGMAX + 1) // QNX 267db96d56Sopenharmony_ci#elif defined(SIGMAX) 277db96d56Sopenharmony_ci# define Py_NSIG (SIGMAX + 1) // djgpp 287db96d56Sopenharmony_ci#else 297db96d56Sopenharmony_ci# define Py_NSIG 64 // Use a reasonable default value 307db96d56Sopenharmony_ci#endif 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci#ifdef __cplusplus 337db96d56Sopenharmony_ci} 347db96d56Sopenharmony_ci#endif 357db96d56Sopenharmony_ci#endif // !Py_INTERNAL_SIGNAL_H 36