9constexpr uint32_t SmiEnables = 0x0000e03fU;
10constexpr uint32_t AcknowledgeStatus = 0xe0000000U;
12template <
typename Read,
typename Write>
13bool disableSmis(uint16_t capability, Read read, Write write) {
14 if (capability < 0x40 || capability > 0xf8 || (capability & 3))
16 const uint16_t control = capability + 4;
18 return write(control, AcknowledgeStatus) && read(control, value) && !(value & SmiEnables);