]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseIoLibIntrinsic/IoLibMsc.c
1. Remove #ifdef _MSC_EXTENSION_ from all source files
[mirror_edk2.git] / MdePkg / Library / BaseIoLibIntrinsic / IoLibMsc.c
index cfe5ddff4394b4a6305825f049b56bba0ae413d0..2c68a3e43c07b9524359c25cb19e44ec207dca73 100644 (file)
@@ -8,7 +8,7 @@
   We don't advocate putting compiler specifics in libraries or drivers but there\r
   is no other way to make this work.\r
 \r
-  Copyright (c) 2006, Intel Corporation<BR>\r
+  Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
   All rights reserved. This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -22,8 +22,6 @@
 **/\r
 \r
 \r
-#if _MSC_EXTENSIONS\r
-\r
 //\r
 // Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics\r
 //\r
@@ -46,8 +44,8 @@ void          _ReadWriteBarrier (void);
 //\r
 // _ReadWriteBarrier() forces memory reads and writes to complete at the point\r
 // in the call. This is only a hint to the compiler and does emit code.\r
-// In past versions of the compiler, _ReadWriteBarrier was enforced only \r
-// locally and did not affect functions up the call tree. In Visual C++ \r
+// In past versions of the compiler, _ReadWriteBarrier was enforced only\r
+// locally and did not affect functions up the call tree. In Visual C++\r
 // 2005, _ReadWriteBarrier is enforced all the way up the call tree.\r
 //\r
 \r
@@ -71,8 +69,12 @@ IoRead8 (
   IN      UINTN                     Port\r
   )\r
 {\r
+  UINT8                             Value;\r
+\r
+  _ReadWriteBarrier ();\r
+  Value = (UINT8)_inp ((UINT16)Port);\r
   _ReadWriteBarrier ();\r
-  return (UINT8)_inp ((UINT16)Port);\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -98,7 +100,9 @@ IoWrite8 (
   )\r
 {\r
   _ReadWriteBarrier ();\r
-  return (UINT8)_outp ((UINT16)Port, Value);\r
+  (UINT8)_outp ((UINT16)Port, Value);\r
+  _ReadWriteBarrier ();\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -121,9 +125,13 @@ IoRead16 (
   IN      UINTN                     Port\r
   )\r
 {\r
+  UINT16                            Value;\r
+\r
   ASSERT ((Port & 1) == 0);\r
   _ReadWriteBarrier ();\r
-  return _inpw((UINT16)Port);\r
+  Value = _inpw ((UINT16)Port);\r
+  _ReadWriteBarrier ();\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -150,7 +158,9 @@ IoWrite16 (
 {\r
   ASSERT ((Port & 1) == 0);\r
   _ReadWriteBarrier ();\r
-  return _outpw ((UINT16)Port, Value);\r
+  _outpw ((UINT16)Port, Value);\r
+  _ReadWriteBarrier ();\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -173,9 +183,13 @@ IoRead32 (
   IN      UINTN                     Port\r
   )\r
 {\r
+  UINT32                            Value;\r
+\r
   ASSERT ((Port & 3) == 0);\r
   _ReadWriteBarrier ();\r
-  return _inpd((UINT16)Port);\r
+  Value = _inpd ((UINT16)Port);\r
+  _ReadWriteBarrier ();\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -202,7 +216,9 @@ IoWrite32 (
 {\r
   ASSERT ((Port & 3) == 0);\r
   _ReadWriteBarrier ();\r
-  return _outpd ((UINT16)Port, Value);\r
+  _outpd ((UINT16)Port, Value);\r
+  _ReadWriteBarrier ();\r
+  return Value;\r
 }\r
 \r
 \r
@@ -226,8 +242,10 @@ MmioRead8 (
   IN      UINTN                     Address\r
   )\r
 {\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT8 *)Address;\r
+  UINT8                             Value;\r
+\r
+  Value = *(volatile UINT8*)Address;\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -250,8 +268,7 @@ MmioWrite8 (
   IN      UINT8                     Value\r
   )\r
 {\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT8 *)Address = Value;\r
+  return *(volatile UINT8*)Address = Value;\r
 }\r
 \r
 /**\r
@@ -274,9 +291,11 @@ MmioRead16 (
   IN      UINTN                     Address\r
   )\r
 {\r
+  UINT16                            Value;\r
+\r
   ASSERT ((Address & 1) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT16 *)Address;\r
+  Value = *(volatile UINT16*)Address;\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -300,8 +319,7 @@ MmioWrite16 (
   )\r
 {\r
   ASSERT ((Address & 1) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT16 *)Address = Value;\r
+  return *(volatile UINT16*)Address = Value;\r
 }\r
 \r
 /**\r
@@ -324,9 +342,11 @@ MmioRead32 (
   IN      UINTN                     Address\r
   )\r
 {\r
+  UINT32                            Value;\r
+\r
   ASSERT ((Address & 3) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT32 *)Address;\r
+  Value = *(volatile UINT32*)Address;\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -350,8 +370,7 @@ MmioWrite32 (
   )\r
 {\r
   ASSERT ((Address & 3) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT32 *)Address = Value;\r
+  return *(volatile UINT32*)Address = Value;\r
 }\r
 \r
 /**\r
@@ -374,9 +393,11 @@ MmioRead64 (
   IN      UINTN                     Address\r
   )\r
 {\r
+  UINT64                            Value;\r
+\r
   ASSERT ((Address & 7) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT64 *)Address;\r
+  Value = *(volatile UINT64*)Address;\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -400,8 +421,6 @@ MmioWrite64 (
   )\r
 {\r
   ASSERT ((Address & 7) == 0);\r
-  _ReadWriteBarrier ();\r
-  return *(volatile UINT64 *)Address = Value;\r
+  return *(volatile UINT64*)Address = Value;\r
 }\r
 \r
-#endif\r