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