Which is what one would expect.The obvious guess would be that FirmwareFeatures is populated by something reading the actual hardware/firmware, and FirmwareFeaturesMask provides a simple way to disable features without kludging the actual hardware/firmware results.
The oddity is that the Mask seems to be switched ON (supposedly allowing an available feature) when the Flag is OFF (feature is not available) for several items. The code you posted would end up thinking such features are present when they are actually not.
That's the part that is confusing as to why ... assuming the Masks in use are accurate ones. What is the origin of the Mask ... @cdf?
EDIT: Just looked at the function again and it seems only what is ON in both sets is the final output which would make sense and everything would work fine. Still begs the question as the why the Mask would have stuff ON that should be "OFF" based on the Flag setting. Again assumes the Mask is accurate.
EDIT2: Other option is the "lazy" programmer angle. Basically recycling code where the Mask covers an existing wide or imminently potential scope and therefore only need updates in one aspect, the Flag, to implement.
Last edited: