volatile for mmio pointers