#ifndef _DETECT_CAPABILITIES_HEADER
#define _DETECT_CAPABILITIES_HEADER

#if defined(MLD_CONFIG_CUSTOM_CAPABILITY_FUNC)
#include "mldsa/src/sys.h" // mld_sys_cap

// The highest value defined for the mld_sys_cap enum
// WARNING: We must keep this in sync with `mldsa/src/sys.h`
#define MLDRS_SYS_CAP_MAX MLD_SYS_CAP_ARMV81M_MVE

// Alias the MLDRS_SYS_CAP_MAX so it is visible by Rust at runtime
enum { MLDRS_SYS_CAP_MAX_VALUE = (int)MLDRS_SYS_CAP_MAX };


// We provide this to the Rust side, implementation defined below.
// Returns 1 on SUCCESS, 0 on FAILURE.
int mldrs_init_sys_check_capability(void);

// We provide this to the Rust side for testing: it wraps the inlined
// `mld_sys_check_capability()` expected by mldsa-native.
int mldrs_test_mld_sys_check_capability(mld_sys_cap cap);

#endif /* defined(MLD_CONFIG_CUSTOM_CAPABILITY_FUNC) */

#endif /* _DETECT_CAPABILITIES_HEADER */
