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?