Revision: 16705
          http://sourceforge.net/p/edk2/code/16705
Author:   vanjeff
Date:     2015-02-03 07:28:08 +0000 (Tue, 03 Feb 2015)
Log Message:
-----------
MdePkg Base.h: Fix EBC build failure and add comments for RETURN_ADDRESS macro.

(Sync patch r16395 from main trunk.)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Jiewen Yao <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/16395

Modified Paths:
--------------
    branches/UDK2014.SP1/MdePkg/Include/Base.h

Modified: branches/UDK2014.SP1/MdePkg/Include/Base.h
===================================================================
--- branches/UDK2014.SP1/MdePkg/Include/Base.h  2015-02-03 07:27:25 UTC (rev 
16704)
+++ branches/UDK2014.SP1/MdePkg/Include/Base.h  2015-02-03 07:28:08 UTC (rev 
16705)
@@ -1016,24 +1016,44 @@
 #define SIGNATURE_64(A, B, C, D, E, F, G, H) \
     (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
 
-#if defined(_MSC_EXTENSIONS)
-  //
-  // Intrinsic function provides the address of the instruction in the calling
-  // function that will be executed after control returns to the caller.
-  //
+#if defined(_MSC_EXTENSIONS) && !defined (MDE_CPU_EBC)
   #pragma intrinsic(_ReturnAddress)
+  /**
+    Get the return address of the calling funcation.
+
+    Based on intrinsic function _ReturnAddress that provides the address of
+    the instruction in the calling function that will be executed after
+    control returns to the caller.
+
+    @param L    Return Level.
+
+    @return The return address of the calling funcation or 0 if L != 0.
+
+  **/
   #define RETURN_ADDRESS(L)     ((L == 0) ? _ReturnAddress() : (VOID *) 0)
 #elif defined(__GNUC__)
-  //
-  // Built-in Function returns the return address of the current function,
-  // or of one of its callers.
-  //
   void * __builtin_return_address (unsigned int level);
+  /**
+    Get the return address of the calling funcation.
+
+    Based on built-in Function __builtin_return_address that returns
+    the return address of the current function, or of one of its callers.
+
+    @param L    Return Level.
+
+    @return The return address of the calling funcation.
+
+  **/
   #define RETURN_ADDRESS(L)     __builtin_return_address (L)
 #else
-  //
-  // Compilers don't support this feature.
-  //
+  /**
+    Get the return address of the calling funcation.
+
+    @param L    Return Level.
+
+    @return 0 as compilers don't support this feature.
+
+  **/
   #define RETURN_ADDRESS(L)     ((VOID *) 0)
 #endif
 


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to