On 8/1/25 10:00, Breno Leitao wrote:
> Would a solution like this look better?
> 
>       enum hwerr_error_type {
>               HWERR_RECOV_CPU,
>               HWERR_RECOV_MEMORY,
>               HWERR_RECOV_PCI,
>               HWERR_RECOV_CXL,
>               HWERR_RECOV_OTHERS,
>       #ifdef CONFIG_X86_MCE
>               HWERR_RECOV_MCE,
>       #endif
>               HWERR_RECOV_MAX,
>       };
> 
> Or, would you prefer to have HWERR_RECOV_ARCH and keep it always there?

That would only work for HWERR_RECOV_MCE, though. If you added another:

#ifdef CONFIG_FOO
        HWERR_RECOV_FOO
#endif

then your example of:

        >>> prog['hwerror_data']
        (struct hwerror_info[6]){
                {
                        .count = (int)844,
                        .timestamp = (time64_t)1752852018,
                },
                ...

doesn't work any more. You wouldn't be able to tell HWERR_RECOV_MCE from
HWERR_RECOV_FOO because they'd alias to the same constant.

This whole thing is an ABI. Right?

Reply via email to