//\r
// Read a byte if StartAddress is byte aligned\r
//\r
- *(UINT8*)Buffer = PciCf8Read8 (StartAddress);\r
+ *(volatile UINT8 *)Buffer = PciCf8Read8 (StartAddress);\r
StartAddress += sizeof (UINT8);\r
Size -= sizeof (UINT8);\r
Buffer = (UINT8*)Buffer + 1;\r
//\r
// Read a word if StartAddress is word aligned\r
//\r
- *(UINT16*)Buffer = PciCf8Read16 (StartAddress);\r
+ *(volatile UINT16 *)Buffer = PciCf8Read16 (StartAddress);\r
StartAddress += sizeof (UINT16);\r
Size -= sizeof (UINT16);\r
Buffer = (UINT16*)Buffer + 1;\r
//\r
// Read as many double words as possible\r
//\r
- *(UINT32*)Buffer = PciCf8Read32 (StartAddress);\r
+ *(volatile UINT32 *)Buffer = PciCf8Read32 (StartAddress);\r
StartAddress += sizeof (UINT32);\r
Size -= sizeof (UINT32);\r
Buffer = (UINT32*)Buffer + 1;\r
//\r
// Read the last remaining word if exist\r
//\r
- *(UINT16*)Buffer = PciCf8Read16 (StartAddress);\r
+ *(volatile UINT16 *)Buffer = PciCf8Read16 (StartAddress);\r
StartAddress += sizeof (UINT16);\r
Size -= sizeof (UINT16);\r
Buffer = (UINT16*)Buffer + 1;\r
//\r
// Read the last remaining byte if exist\r
//\r
- *(UINT8*)Buffer = PciCf8Read8 (StartAddress);\r
+ *(volatile UINT8 *)Buffer = PciCf8Read8 (StartAddress);\r
}\r
\r
return ReturnValue;\r