diff --git a/share/libc/limits.h b/share/libc/limits.h index a545c01f671c3a7c99e42aedbc4ab6c375a57b66..4ae39a3106102daafb3b4f83579578252ab4ff0b 100644 --- a/share/libc/limits.h +++ b/share/libc/limits.h @@ -223,4 +223,58 @@ # define IOV_MAX 255 #endif +// Maximum number of user trace event type identifiers that may simultaneously +// exist in a traced process, including the predefined user trace event +// POSIX_TRACE_UNNAMED_USER_EVENT. +// Minimum Acceptable Value: _POSIX_TRACE_USER_EVENT_MAX +#ifdef __FC_TRACE_USER_EVENT_MAX +# if __FC_TRACE_USER_EVENT_MAX >= 0 + _Static_assert(__FC_TRACE_USER_EVENT_MAX >= _POSIX_TRACE_USER_EVENT_MAX, "__FC_TRACE_USER_EVENT_MAX is too small (" __fc_expand(__FC_TRACE_USER_EVENT_MAX) "): minimal value is " __fc_expand(_POSIX_TRACE_USER_EVENT_MAX)); +# define TRACE_USER_EVENT_MAX __FC_TRACE_USER_EVENT_MAX +# else +# undef TRACE_USER_EVENT_MAX +# endif +#else +# define TRACE_USER_EVENT_MAX 64 +#endif + +// Maximum length of the trace event name (not including the terminating null). +// Minimum Acceptable Value: _POSIX_TRACE_EVENT_NAME_MAX +#ifdef __FC_TRACE_EVENT_NAME_MAX +# if __FC_TRACE_EVENT_NAME_MAX >= 0 + _Static_assert(__FC_TRACE_EVENT_NAME_MAX >= _POSIX_TRACE_EVENT_NAME_MAX, "__FC_TRACE_EVENT_NAME_MAX is too small (" __fc_expand(__FC_TRACE_EVENT_NAME_MAX) "): minimal value is " __fc_expand(_POSIX_TRACE_EVENT_NAME_MAX)); +# define TRACE_EVENT_NAME_MAX __FC_TRACE_EVENT_NAME_MAX +# else +# undef TRACE_EVENT_NAME_MAX +# endif +#else +# define TRACE_EVENT_NAME_MAX 30 +#endif + +// Maximum length of the trace generation version string or of the trace stream name (not including the terminating null). +// Minimum Acceptable Value: _POSIX_TRACE_NAME_MAX +#ifdef __FC_TRACE_NAME_MAX +# if __FC_TRACE_NAME_MAX >= 0 + _Static_assert(__FC_TRACE_NAME_MAX >= _POSIX_TRACE_NAME_MAX, "__FC_TRACE_NAME_MAX is too small (" __fc_expand(__FC_TRACE_NAME_MAX) "): minimal value is " __fc_expand(_POSIX_TRACE_NAME_MAX)); +# define TRACE_NAME_MAX __FC_TRACE_NAME_MAX +# else +# undef TRACE_NAME_MAX +# endif +#else +# define TRACE_NAME_MAX 8 +#endif + +// The size of the storage required for a login name, in bytes, including the terminating null. +// Minimum Acceptable Value: _POSIX_LOGIN_NAME_MAX +#ifdef __FC_LOGIN_NAME_MAX +# if __FC_LOGIN_NAME_MAX >= 0 + _Static_assert(__FC_LOGIN_NAME_MAX >= _POSIX_LOGIN_NAME_MAX, "__FC_LOGIN_NAME_MAX is too small (" __fc_expand(__FC_LOGIN_NAME_MAX) "): minimal value is " __fc_expand(_POSIX_LOGIN_NAME_MAX)); +# define LOGIN_NAME_MAX __FC_LOGIN_NAME_MAX +# else +# undef LOGIN_NAME_MAX +# endif +#else +# define LOGIN_NAME_MAX 8 +#endif + #endif