Is there some way to guarantee that a volatile variable will remain volatile regardless of optimization level? This is critical when writing a device driver that modifies CPU memory. eg. i82596.