From 42eedea958591087603bbacd1c2227d2494026af Mon Sep 17 00:00:00 2001 From: yshang1 Date: Fri, 25 Jul 2008 12:21:57 +0000 Subject: Code Scrub for MdePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5567 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/Ia32/ARShiftU64.c | 13 +++++++++ MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.c | 13 +++++++-- MdePkg/Library/BaseLib/Ia32/CpuId.c | 25 ++++++++++++++++ MdePkg/Library/BaseLib/Ia32/CpuIdEx.c | 32 +++++++++++++++++++++ MdePkg/Library/BaseLib/Ia32/CpuPause.c | 7 +++++ MdePkg/Library/BaseLib/Ia32/CpuSleep.c | 8 ++++++ MdePkg/Library/BaseLib/Ia32/DisableInterrupts.c | 4 +++ MdePkg/Library/BaseLib/Ia32/DisablePaging32.c | 30 ++++++++++++++++++++ MdePkg/Library/BaseLib/Ia32/DivU64x32.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.c | 17 +++++++++++ .../Library/BaseLib/Ia32/EnableDisableInterrupts.c | 5 ++++ MdePkg/Library/BaseLib/Ia32/EnableInterrupts.c | 4 +++ MdePkg/Library/BaseLib/Ia32/EnablePaging32.c | 33 ++++++++++++++++++++++ MdePkg/Library/BaseLib/Ia32/FlushCacheLine.c | 15 ++++++++++ MdePkg/Library/BaseLib/Ia32/FxRestore.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/FxSave.c | 10 +++++++ .../BaseLib/Ia32/InterlockedCompareExchange32.c | 17 +++++++++++ .../BaseLib/Ia32/InterlockedCompareExchange64.c | 16 +++++++++++ MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.c | 13 +++++++++ MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.c | 13 +++++++++ MdePkg/Library/BaseLib/Ia32/Invd.c | 7 +++++ MdePkg/Library/BaseLib/Ia32/LRotU64.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/LShiftU64.c | 13 +++++++++ MdePkg/Library/BaseLib/Ia32/LongJump.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/ModU64x32.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/Monitor.c | 16 +++++++++++ MdePkg/Library/BaseLib/Ia32/MultU64x32.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/MultU64x64.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/Mwait.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/RRotU64.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/RShiftU64.c | 13 +++++++++ MdePkg/Library/BaseLib/Ia32/ReadCr0.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadCr2.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadCr3.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadCr4.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadCs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadDr0.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr1.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr2.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr3.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr4.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr5.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr6.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDr7.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadDs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadEflags.c | 10 +++++++ MdePkg/Library/BaseLib/Ia32/ReadEs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadFs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadGdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadGs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadIdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadLdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm0.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm1.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm2.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm3.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm4.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm5.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm6.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMm7.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadMsr64.c | 14 +++++++++ MdePkg/Library/BaseLib/Ia32/ReadPmc.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/ReadSs.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadTr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/ReadTsc.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/SetJump.c | 26 +++++++++++++++++ MdePkg/Library/BaseLib/Ia32/SwapBytes64.c | 12 ++++++++ MdePkg/Library/BaseLib/Ia32/Wbinvd.c | 7 +++++ MdePkg/Library/BaseLib/Ia32/WriteCr0.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteCr2.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteCr3.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteCr4.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr0.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr1.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr2.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr3.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr4.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr5.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr6.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteDr7.c | 11 ++++++++ MdePkg/Library/BaseLib/Ia32/WriteGdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteIdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteLdtr.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm0.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm1.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm2.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm3.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm4.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm5.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm6.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMm7.c | 9 ++++++ MdePkg/Library/BaseLib/Ia32/WriteMsr64.c | 17 +++++++++++ 92 files changed, 1059 insertions(+), 3 deletions(-) (limited to 'MdePkg/Library/BaseLib/Ia32') diff --git a/MdePkg/Library/BaseLib/Ia32/ARShiftU64.c b/MdePkg/Library/BaseLib/Ia32/ARShiftU64.c index fb5f4282bb..dab93257ee 100644 --- a/MdePkg/Library/BaseLib/Ia32/ARShiftU64.c +++ b/MdePkg/Library/BaseLib/Ia32/ARShiftU64.c @@ -17,6 +17,19 @@ // +/** + Shifts a 64-bit integer right between 0 and 63 bits. The high bits + are filled with original integer's bit 63. The shifted value is returned. + + This function shifts the 64-bit value Operand to the right by Count bits. The + high Count bits are set to bit 63 of Operand. The shifted value is returned. + + @param Operand The 64-bit operand to shift right. + @param Count The number of bits to shift right. + + @return Operand arithmetically shifted right by Count + +**/ UINT64 EFIAPI InternalMathARShiftU64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.c b/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.c index 35d0fc9c23..d4fce47c00 100644 --- a/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.c +++ b/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.c @@ -17,13 +17,20 @@ // -// -// Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics -// +/** + Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics. +**/ void __debugbreak (); #pragma intrinsic(__debugbreak) +/** + Generates a breakpoint on the CPU. + + Generates a breakpoint on the CPU. The breakpoint must be implemented such + that code can resume normal execution after the breakpoint. + +**/ VOID EFIAPI CpuBreakpoint ( diff --git a/MdePkg/Library/BaseLib/Ia32/CpuId.c b/MdePkg/Library/BaseLib/Ia32/CpuId.c index 73f12bcaee..6fbc5375bc 100644 --- a/MdePkg/Library/BaseLib/Ia32/CpuId.c +++ b/MdePkg/Library/BaseLib/Ia32/CpuId.c @@ -17,6 +17,31 @@ // +/** + Retrieves CPUID information. + + Executes the CPUID instruction with EAX set to the value specified by Index. + This function always returns Index. + If Eax is not NULL, then the value of EAX after CPUID is returned in Eax. + If Ebx is not NULL, then the value of EBX after CPUID is returned in Ebx. + If Ecx is not NULL, then the value of ECX after CPUID is returned in Ecx. + If Edx is not NULL, then the value of EDX after CPUID is returned in Edx. + This function is only available on IA-32 and X64. + + @param Index The 32-bit value to load into EAX prior to invoking the CPUID + instruction. + @param Eax Pointer to the 32-bit EAX value returned by the CPUID + instruction. This is an optional parameter that may be NULL. + @param Ebx Pointer to the 32-bit EBX value returned by the CPUID + instruction. This is an optional parameter that may be NULL. + @param Ecx Pointer to the 32-bit ECX value returned by the CPUID + instruction. This is an optional parameter that may be NULL. + @param Edx Pointer to the 32-bit EDX value returned by the CPUID + instruction. This is an optional parameter that may be NULL. + + @return Index + +**/ UINT32 EFIAPI AsmCpuid ( diff --git a/MdePkg/Library/BaseLib/Ia32/CpuIdEx.c b/MdePkg/Library/BaseLib/Ia32/CpuIdEx.c index 2c1eca670e..c685e5ec4e 100644 --- a/MdePkg/Library/BaseLib/Ia32/CpuIdEx.c +++ b/MdePkg/Library/BaseLib/Ia32/CpuIdEx.c @@ -17,6 +17,38 @@ // +/** + Retrieves CPUID information using an extended leaf identifier. + + Executes the CPUID instruction with EAX set to the value specified by Index + and ECX set to the value specified by SubIndex. This function always returns + Index. This function is only available on IA-32 and x64. + + If Eax is not NULL, then the value of EAX after CPUID is returned in Eax. + If Ebx is not NULL, then the value of EBX after CPUID is returned in Ebx. + If Ecx is not NULL, then the value of ECX after CPUID is returned in Ecx. + If Edx is not NULL, then the value of EDX after CPUID is returned in Edx. + + @param Index The 32-bit value to load into EAX prior to invoking the + CPUID instruction. + @param SubIndex The 32-bit value to load into ECX prior to invoking the + CPUID instruction. + @param Eax Pointer to the 32-bit EAX value returned by the CPUID + instruction. This is an optional parameter that may be + NULL. + @param Ebx Pointer to the 32-bit EBX value returned by the CPUID + instruction. This is an optional parameter that may be + NULL. + @param Ecx Pointer to the 32-bit ECX value returned by the CPUID + instruction. This is an optional parameter that may be + NULL. + @param Edx Pointer to the 32-bit EDX value returned by the CPUID + instruction. This is an optional parameter that may be + NULL. + + @return Index + +**/ UINT32 EFIAPI AsmCpuidEx ( diff --git a/MdePkg/Library/BaseLib/Ia32/CpuPause.c b/MdePkg/Library/BaseLib/Ia32/CpuPause.c index ee7c96736b..138e3a3a09 100644 --- a/MdePkg/Library/BaseLib/Ia32/CpuPause.c +++ b/MdePkg/Library/BaseLib/Ia32/CpuPause.c @@ -17,6 +17,13 @@ // +/** + Requests CPU to pause for a short period of time. + + Requests CPU to pause for a short period of time. Typically used in MP + systems to prevent memory starvation while waiting for a spin lock. + +**/ VOID EFIAPI CpuPause ( diff --git a/MdePkg/Library/BaseLib/Ia32/CpuSleep.c b/MdePkg/Library/BaseLib/Ia32/CpuSleep.c index 690f9b3598..8861e3369d 100644 --- a/MdePkg/Library/BaseLib/Ia32/CpuSleep.c +++ b/MdePkg/Library/BaseLib/Ia32/CpuSleep.c @@ -17,6 +17,14 @@ // +/** + Places the CPU in a sleep state until an interrupt is received. + + Places the CPU in a sleep state until an interrupt is received. If interrupts + are disabled prior to calling this function, then the CPU will be placed in a + sleep state indefinitely. + +**/ VOID EFIAPI CpuSleep ( diff --git a/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.c b/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.c index 60c1169a57..b9e31c66c3 100644 --- a/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.c +++ b/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.c @@ -17,6 +17,10 @@ // +/** + Disables CPU interrupts. + +**/ VOID EFIAPI DisableInterrupts ( diff --git a/MdePkg/Library/BaseLib/Ia32/DisablePaging32.c b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.c index d462c01ff3..1ab21224ca 100644 --- a/MdePkg/Library/BaseLib/Ia32/DisablePaging32.c +++ b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.c @@ -19,6 +19,36 @@ #if _MSC_EXTENSIONS +/** + Disables the 32-bit paging mode on the CPU. + + Disables the 32-bit paging mode on the CPU and returns to 32-bit protected + mode. This function assumes the current execution mode is 32-paged protected + mode. This function is only available on IA-32. After the 32-bit paging mode + is disabled, control is transferred to the function specified by EntryPoint + using the new stack specified by NewStack and passing in the parameters + specified by Context1 and Context2. Context1 and Context2 are optional and + may be NULL. The function EntryPoint must never return. + + There are a number of constraints that must be followed before calling this + function: + 1) Interrupts must be disabled. + 2) The caller must be in 32-bit paged mode. + 3) CR0, CR3, and CR4 must be compatible with 32-bit paged mode. + 4) CR3 must point to valid page tables that guarantee that the pages for + this function and the stack are identity mapped. + + @param EntryPoint A pointer to function to call with the new stack after + paging is disabled. + @param Context1 A pointer to the context to pass into the EntryPoint + function as the first parameter after paging is disabled. + @param Context2 A pointer to the context to pass into the EntryPoint + function as the second parameter after paging is + disabled. + @param NewStack A pointer to the new stack to use for the EntryPoint + function after paging is disabled. + +**/ __declspec (naked) VOID EFIAPI diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32.c b/MdePkg/Library/BaseLib/Ia32/DivU64x32.c index 0ec3c6319b..92eb9e115b 100644 --- a/MdePkg/Library/BaseLib/Ia32/DivU64x32.c +++ b/MdePkg/Library/BaseLib/Ia32/DivU64x32.c @@ -17,6 +17,20 @@ // +/** + Divides a 64-bit unsigned integer by a 32-bit unsigned integer and + generates a 64-bit unsigned result. + + This function divides the 64-bit unsigned value Dividend by the 32-bit + unsigned value Divisor and generates a 64-bit unsigned quotient. This + function returns the 64-bit unsigned quotient. + + @param Dividend A 64-bit unsigned value. + @param Divisor A 32-bit unsigned value. + + @return Dividend / Divisor + +**/ UINT64 EFIAPI InternalMathDivU64x32 ( diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.c b/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.c index 54da1e9ab0..4127004da5 100644 --- a/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.c +++ b/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.c @@ -17,6 +17,23 @@ // +/** + Divides a 64-bit unsigned integer by a 32-bit unsigned integer and + generates a 64-bit unsigned result and an optional 32-bit unsigned remainder. + + This function divides the 64-bit unsigned value Dividend by the 32-bit + unsigned value Divisor and generates a 64-bit unsigned quotient. If Remainder + is not NULL, then the 32-bit unsigned remainder is returned in Remainder. + This function returns the 64-bit unsigned quotient. + + @param Dividend A 64-bit unsigned value. + @param Divisor A 32-bit unsigned value. + @param Remainder A pointer to a 32-bit unsigned value. This parameter is + optional and may be NULL. + + @return Dividend / Divisor + +**/ UINT64 EFIAPI InternalMathDivRemU64x32 ( diff --git a/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.c b/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.c index 39118728f0..6e0d3fbdde 100644 --- a/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.c +++ b/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.c @@ -17,6 +17,11 @@ // +/** + Enables CPU interrupts for the smallest window required to capture any + pending interrupts. + +**/ VOID EFIAPI EnableDisableInterrupts ( diff --git a/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.c b/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.c index cb4ee2e3ad..7f50bb769e 100644 --- a/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.c +++ b/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.c @@ -17,6 +17,10 @@ // +/** + Enables CPU interrupts. + +**/ VOID EFIAPI EnableInterrupts ( diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging32.c b/MdePkg/Library/BaseLib/Ia32/EnablePaging32.c index 3cb290c516..87e31cac83 100644 --- a/MdePkg/Library/BaseLib/Ia32/EnablePaging32.c +++ b/MdePkg/Library/BaseLib/Ia32/EnablePaging32.c @@ -19,6 +19,39 @@ #if _MSC_EXTENSIONS +/** + Enables the 32-bit paging mode on the CPU. + + Enables the 32-bit paging mode on the CPU. CR0, CR3, CR4, and the page tables + must be properly initialized prior to calling this service. This function + assumes the current execution mode is 32-bit protected mode. This function is + only available on IA-32. After the 32-bit paging mode is enabled, control is + transferred to the function specified by EntryPoint using the new stack + specified by NewStack and passing in the parameters specified by Context1 and + Context2. Context1 and Context2 are optional and may be NULL. The function + EntryPoint must never return. + + There are a number of constraints that must be followed before calling this + function: + 1) Interrupts must be disabled. + 2) The caller must be in 32-bit protected mode with flat descriptors. This + means all descriptors must have a base of 0 and a limit of 4GB. + 3) CR0 and CR4 must be compatible with 32-bit protected mode with flat + descriptors. + 4) CR3 must point to valid page tables that will be used once the transition + is complete, and those page tables must guarantee that the pages for this + function and the stack are identity mapped. + + @param EntryPoint A pointer to function to call with the new stack after + paging is enabled. + @param Context1 A pointer to the context to pass into the EntryPoint + function as the first parameter after paging is enabled. + @param Context2 A pointer to the context to pass into the EntryPoint + function as the second parameter after paging is enabled. + @param NewStack A pointer to the new stack to use for the EntryPoint + function after paging is enabled. + +**/ __declspec (naked) VOID EFIAPI diff --git a/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.c b/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.c index 1c7cc0f33f..d6fa2d39e4 100644 --- a/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.c +++ b/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.c @@ -17,6 +17,21 @@ // +/** + Flushes a cache line from all the instruction and data caches within the + coherency domain of the CPU. + + Flushed the cache line specified by LinearAddress, and returns LinearAddress. + This function is only available on IA-32 and X64. + + @param LinearAddress The address of the cache line to flush. If the CPU is + in a physical addressing mode, then LinearAddress is a + physical address. If the CPU is in a virtual + addressing mode, then LinearAddress is a virtual + address. + + @return LinearAddress +**/ VOID * EFIAPI AsmFlushCacheLine ( diff --git a/MdePkg/Library/BaseLib/Ia32/FxRestore.c b/MdePkg/Library/BaseLib/Ia32/FxRestore.c index 1314da4194..f5e1966e4a 100644 --- a/MdePkg/Library/BaseLib/Ia32/FxRestore.c +++ b/MdePkg/Library/BaseLib/Ia32/FxRestore.c @@ -18,6 +18,16 @@ #include +/** + Restores the current floating point/SSE/SSE2 context from a buffer. + + Restores the current floating point/SSE/SSE2 state from the buffer specified + by Buffer. Buffer must be aligned on a 16-byte boundary. This function is + only available on IA-32 and X64. + + @param Buffer Pointer to a buffer to save the floating point/SSE/SSE2 context. + +**/ VOID EFIAPI InternalX86FxRestore ( diff --git a/MdePkg/Library/BaseLib/Ia32/FxSave.c b/MdePkg/Library/BaseLib/Ia32/FxSave.c index 44aaee0090..a57312d42d 100644 --- a/MdePkg/Library/BaseLib/Ia32/FxSave.c +++ b/MdePkg/Library/BaseLib/Ia32/FxSave.c @@ -18,6 +18,16 @@ #include +/** + Save the current floating point/SSE/SSE2 context to a buffer. + + Saves the current floating point/SSE/SSE2 state to the buffer specified by + Buffer. Buffer must be aligned on a 16-byte boundary. This function is only + available on IA-32 and X64. + + @param Buffer Pointer to a buffer to save the floating point/SSE/SSE2 context. + +**/ VOID EFIAPI InternalX86FxSave ( diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.c b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.c index ec60f97344..cbc8a57496 100644 --- a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.c +++ b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.c @@ -17,6 +17,23 @@ // +/** + Performs an atomic compare exchange operation on a 32-bit unsigned integer. + + Performs an atomic compare exchange operation on the 32-bit unsigned integer + specified by Value. If Value is equal to CompareValue, then Value is set to + ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue, + then Value is returned. The compare exchange operation must be performed using + MP safe mechanisms. + + @param Value A pointer to the 32-bit value for the compare exchange + operation. + @param CompareValue 32-bit value used in compare operation. + @param ExchangeValue 32-bit value used in exchange operation. + + @return The original *Value before exchange. + +**/ UINT32 EFIAPI InternalSyncCompareExchange32 ( diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.c b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.c index 6bdbedad1f..5bbba48702 100644 --- a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.c +++ b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.c @@ -17,6 +17,22 @@ // +/** + Performs an atomic compare exchange operation on a 64-bit unsigned integer. + + Performs an atomic compare exchange operation on the 64-bit unsigned integer specified + by Value. If Value is equal to CompareValue, then Value is set to ExchangeValue and + CompareValue is returned. If Value is not equal to CompareValue, then Value is returned. + The compare exchange operation must be performed using MP safe mechanisms. + + @param Value A pointer to the 64-bit value for the compare exchange + operation. + @param CompareValue 64-bit value used in compare operation. + @param ExchangeValue 64-bit value used in exchange operation. + + @return The original *Value before exchange. + +**/ UINT64 EFIAPI InternalSyncCompareExchange64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.c b/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.c index c7ace7ad54..df6908ef27 100644 --- a/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.c +++ b/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.c @@ -17,6 +17,19 @@ // +/** + Performs an atomic decrement of an 32-bit unsigned integer. + + Performs an atomic decrement of the 32-bit unsigned integer specified by + Value and returns the decrement value. The decrement operation must be + performed using MP safe mechanisms. The state of the return value is not + guaranteed to be MP safe. + + @param Value A pointer to the 32-bit value to decrement. + + @return The decrement value. + +**/ UINT32 EFIAPI InternalSyncDecrement ( diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.c b/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.c index f34f4748eb..8bbd188651 100644 --- a/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.c +++ b/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.c @@ -17,6 +17,19 @@ // +/** + Performs an atomic increment of an 32-bit unsigned integer. + + Performs an atomic increment of the 32-bit unsigned integer specified by + Value and returns the incremented value. The increment operation must be + performed using MP safe mechanisms. The state of the return value is not + guaranteed to be MP safe. + + @param Value A pointer to the 32-bit value to increment. + + @return The incremented value. + +**/ UINT32 EFIAPI InternalSyncIncrement ( diff --git a/MdePkg/Library/BaseLib/Ia32/Invd.c b/MdePkg/Library/BaseLib/Ia32/Invd.c index 0206e6d44b..96de45514e 100644 --- a/MdePkg/Library/BaseLib/Ia32/Invd.c +++ b/MdePkg/Library/BaseLib/Ia32/Invd.c @@ -17,6 +17,13 @@ // +/** + Executes a INVD instruction. + + Executes a INVD instruction. This function is only available on IA-32 and + X64. + +**/ VOID EFIAPI AsmInvd ( diff --git a/MdePkg/Library/BaseLib/Ia32/LRotU64.c b/MdePkg/Library/BaseLib/Ia32/LRotU64.c index 9a5deea70d..ac7305105a 100644 --- a/MdePkg/Library/BaseLib/Ia32/LRotU64.c +++ b/MdePkg/Library/BaseLib/Ia32/LRotU64.c @@ -17,6 +17,20 @@ // +/** + Rotates a 64-bit integer left between 0 and 63 bits, filling + the low bits with the high bits that were rotated. + + This function rotates the 64-bit value Operand to the left by Count bits. The + low Count bits are fill with the high Count bits of Operand. The rotated + value is returned. + + @param Operand The 64-bit operand to rotate left. + @param Count The number of bits to rotate left. + + @return Operand <<< Count + +**/ UINT64 EFIAPI InternalMathLRotU64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/LShiftU64.c b/MdePkg/Library/BaseLib/Ia32/LShiftU64.c index 4324bfb53b..f684e1f29a 100644 --- a/MdePkg/Library/BaseLib/Ia32/LShiftU64.c +++ b/MdePkg/Library/BaseLib/Ia32/LShiftU64.c @@ -17,6 +17,19 @@ // +/** + Shifts a 64-bit integer left between 0 and 63 bits. The low bits + are filled with zeros. The shifted value is returned. + + This function shifts the 64-bit value Operand to the left by Count bits. The + low Count bits are set to zero. The shifted value is returned. + + @param Operand The 64-bit operand to shift left. + @param Count The number of bits to shift left. + + @return Operand << Count + +**/ UINT64 EFIAPI InternalMathLShiftU64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.c b/MdePkg/Library/BaseLib/Ia32/LongJump.c index f0408b83fa..f4dbcfdf1a 100644 --- a/MdePkg/Library/BaseLib/Ia32/LongJump.c +++ b/MdePkg/Library/BaseLib/Ia32/LongJump.c @@ -18,6 +18,17 @@ #include +/** + Restores the CPU context that was saved with SetJump(). + + Restores the CPU context from the buffer specified by JumpBuffer. + This function never returns to the caller. + Instead is resumes execution based on the state of JumpBuffer. + + @param JumpBuffer A pointer to CPU context buffer. + @param Value The value to return when the SetJump() context is restored. + +**/ __declspec (naked) VOID EFIAPI diff --git a/MdePkg/Library/BaseLib/Ia32/ModU64x32.c b/MdePkg/Library/BaseLib/Ia32/ModU64x32.c index 59ed50433a..a2727ea6d4 100644 --- a/MdePkg/Library/BaseLib/Ia32/ModU64x32.c +++ b/MdePkg/Library/BaseLib/Ia32/ModU64x32.c @@ -17,6 +17,20 @@ // +/** + Divides a 64-bit unsigned integer by a 32-bit unsigned integer and + generates a 32-bit unsigned remainder. + + This function divides the 64-bit unsigned value Dividend by the 32-bit + unsigned value Divisor and generates a 32-bit remainder. This function + returns the 32-bit unsigned remainder. + + @param Dividend A 64-bit unsigned value. + @param Divisor A 32-bit unsigned value. + + @return Dividend % Divisor + +**/ UINT32 EFIAPI InternalMathModU64x32 ( diff --git a/MdePkg/Library/BaseLib/Ia32/Monitor.c b/MdePkg/Library/BaseLib/Ia32/Monitor.c index 469aa6d7fa..68da9c68c7 100644 --- a/MdePkg/Library/BaseLib/Ia32/Monitor.c +++ b/MdePkg/Library/BaseLib/Ia32/Monitor.c @@ -17,6 +17,22 @@ // +/** + Sets up a monitor buffer that is used by AsmMwait(). + + Executes a MONITOR instruction with the register state specified by Eax, Ecx + and Edx. Returns Eax. This function is only available on IA-32 and X64. + + @param Eax The value to load into EAX or RAX before executing the MONITOR + instruction. + @param Ecx The value to load into ECX or RCX before executing the MONITOR + instruction. + @param Edx The value to load into EDX or RDX before executing the MONITOR + instruction. + + @return Eax + +**/ UINTN EFIAPI AsmMonitor ( diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x32.c b/MdePkg/Library/BaseLib/Ia32/MultU64x32.c index db911cadb2..36e9227dd4 100644 --- a/MdePkg/Library/BaseLib/Ia32/MultU64x32.c +++ b/MdePkg/Library/BaseLib/Ia32/MultU64x32.c @@ -17,6 +17,20 @@ // +/** + Multiples a 64-bit unsigned integer by a 32-bit unsigned integer + and generates a 64-bit unsigned result. + + This function multiples the 64-bit unsigned value Multiplicand by the 32-bit + unsigned value Multiplier and generates a 64-bit unsigned result. This 64- + bit unsigned result is returned. + + @param Multiplicand A 64-bit unsigned value. + @param Multiplier A 32-bit unsigned value. + + @return Multiplicand * Multiplier + +**/ UINT64 EFIAPI InternalMathMultU64x32 ( diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x64.c b/MdePkg/Library/BaseLib/Ia32/MultU64x64.c index ddafff47ae..e2b7e6852f 100644 --- a/MdePkg/Library/BaseLib/Ia32/MultU64x64.c +++ b/MdePkg/Library/BaseLib/Ia32/MultU64x64.c @@ -17,6 +17,20 @@ // +/** + Multiples a 64-bit unsigned integer by a 64-bit unsigned integer + and generates a 64-bit unsigned result. + + This function multiples the 64-bit unsigned value Multiplicand by the 64-bit + unsigned value Multiplier and generates a 64-bit unsigned result. This 64- + bit unsigned result is returned. + + @param Multiplicand A 64-bit unsigned value. + @param Multiplier A 64-bit unsigned value. + + @return Multiplicand * Multiplier + +**/ UINT64 EFIAPI InternalMathMultU64x64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/Mwait.c b/MdePkg/Library/BaseLib/Ia32/Mwait.c index 0629afe295..64fccddc68 100644 --- a/MdePkg/Library/BaseLib/Ia32/Mwait.c +++ b/MdePkg/Library/BaseLib/Ia32/Mwait.c @@ -17,6 +17,20 @@ // +/** + Executes an MWAIT instruction. + + Executes an MWAIT instruction with the register state specified by Eax and + Ecx. Returns Eax. This function is only available on IA-32 and X64. + + @param Eax The value to load into EAX or RAX before executing the MONITOR + instruction. + @param Ecx The value to load into ECX or RCX before executing the MONITOR + instruction. + + @return Eax + +**/ UINTN EFIAPI AsmMwait ( diff --git a/MdePkg/Library/BaseLib/Ia32/RRotU64.c b/MdePkg/Library/BaseLib/Ia32/RRotU64.c index 31274aac2c..59d42b19ef 100644 --- a/MdePkg/Library/BaseLib/Ia32/RRotU64.c +++ b/MdePkg/Library/BaseLib/Ia32/RRotU64.c @@ -17,6 +17,20 @@ // +/** + Rotates a 64-bit integer right between 0 and 63 bits, filling + the high bits with the high low bits that were rotated. + + This function rotates the 64-bit value Operand to the right by Count bits. + The high Count bits are fill with the low Count bits of Operand. The rotated + value is returned. + + @param Operand The 64-bit operand to rotate right. + @param Count The number of bits to rotate right. + + @return Operand >>> Count + +**/ UINT64 EFIAPI InternalMathRRotU64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/RShiftU64.c b/MdePkg/Library/BaseLib/Ia32/RShiftU64.c index a6b957bacc..a4d1db9547 100644 --- a/MdePkg/Library/BaseLib/Ia32/RShiftU64.c +++ b/MdePkg/Library/BaseLib/Ia32/RShiftU64.c @@ -17,6 +17,19 @@ // +/** + Shifts a 64-bit integer right between 0 and 63 bits. This high bits + are filled with zeros. The shifted value is returned. + + This function shifts the 64-bit value Operand to the right by Count bits. The + high Count bits are set to zero. The shifted value is returned. + + @param Operand The 64-bit operand to shift right. + @param Count The number of bits to shift right. + + @return Operand >> Count + +**/ UINT64 EFIAPI InternalMathRShiftU64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr0.c b/MdePkg/Library/BaseLib/Ia32/ReadCr0.c index 8c6ab3527f..5444aafb6a 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadCr0.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadCr0.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of the Control Register 0 (CR0). + + Reads and returns the current value of CR4. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of the Control Register 0 (CR0). + +**/ UINTN EFIAPI AsmReadCr0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr2.c b/MdePkg/Library/BaseLib/Ia32/ReadCr2.c index 1c682b3899..4e97814ee3 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadCr2.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadCr2.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of the Control Register 2 (CR2). + + Reads and returns the current value of CR2. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of the Control Register 2 (CR2). + +**/ UINTN EFIAPI AsmReadCr2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr3.c b/MdePkg/Library/BaseLib/Ia32/ReadCr3.c index 39ad5e4f2f..1f6afb39c0 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadCr3.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadCr3.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of the Control Register 3 (CR3). + + Reads and returns the current value of CR3. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of the Control Register 3 (CR3). + +**/ UINTN EFIAPI AsmReadCr3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr4.c b/MdePkg/Library/BaseLib/Ia32/ReadCr4.c index 71ffa9b72d..5d24f57038 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadCr4.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadCr4.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of the Control Register 4 (CR4). + + Reads and returns the current value of CR4. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of the Control Register 4 (CR4). + +**/ UINTN EFIAPI AsmReadCr4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCs.c b/MdePkg/Library/BaseLib/Ia32/ReadCs.c index cd9bad54e7..86c7257158 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadCs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadCs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of Code Segment Register (CS). + + Reads and returns the current value of CS. This function is only available on + IA-32 and X64. + + @return The current value of CS. + +**/ UINT16 EFIAPI AsmReadCs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr0.c b/MdePkg/Library/BaseLib/Ia32/ReadDr0.c index 7c6f0c629a..23880a416e 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr0.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr0.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 0 (DR0). + + Reads and returns the current value of DR0. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 0 (DR0). + +**/ UINTN EFIAPI AsmReadDr0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr1.c b/MdePkg/Library/BaseLib/Ia32/ReadDr1.c index 573f658864..77a9adac66 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr1.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr1.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 1 (DR1). + + Reads and returns the current value of DR1. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 1 (DR1). + +**/ UINTN EFIAPI AsmReadDr1 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr2.c b/MdePkg/Library/BaseLib/Ia32/ReadDr2.c index 6685d775f7..02ba6a8545 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr2.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr2.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 2 (DR2). + + Reads and returns the current value of DR2. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 2 (DR2). + +**/ UINTN EFIAPI AsmReadDr2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr3.c b/MdePkg/Library/BaseLib/Ia32/ReadDr3.c index e8a4bcc6bb..10d219943d 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr3.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr3.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 3 (DR3). + + Reads and returns the current value of DR3. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 3 (DR3). + +**/ UINTN EFIAPI AsmReadDr3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr4.c b/MdePkg/Library/BaseLib/Ia32/ReadDr4.c index 9ec23218d4..ff37daa58a 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr4.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr4.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 4 (DR4). + + Reads and returns the current value of DR4. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 4 (DR4). + +**/ UINTN EFIAPI AsmReadDr4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr5.c b/MdePkg/Library/BaseLib/Ia32/ReadDr5.c index 3470524b22..ca422e47a5 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr5.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr5.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 5 (DR5). + + Reads and returns the current value of DR5. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 5 (DR5). + +**/ UINTN EFIAPI AsmReadDr5 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr6.c b/MdePkg/Library/BaseLib/Ia32/ReadDr6.c index debeecb24f..921ccc8a0b 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr6.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr6.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 6 (DR6). + + Reads and returns the current value of DR6. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 6 (DR6). + +**/ UINTN EFIAPI AsmReadDr6 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr7.c b/MdePkg/Library/BaseLib/Ia32/ReadDr7.c index da7a120d70..cb15e1a706 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDr7.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr7.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of Debug Register 7 (DR7). + + Reads and returns the current value of DR7. This function is only available + on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on + X64. + + @return The value of Debug Register 7 (DR7). + +**/ UINTN EFIAPI AsmReadDr7 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDs.c b/MdePkg/Library/BaseLib/Ia32/ReadDs.c index 91294896e0..e80b394826 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadDs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadDs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of Data Segment Register (DS). + + Reads and returns the current value of DS. This function is only available on + IA-32 and X64. + + @return The current value of DS. + +**/ UINT16 EFIAPI AsmReadDs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEflags.c b/MdePkg/Library/BaseLib/Ia32/ReadEflags.c index ca5d19c5ac..eab499532c 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadEflags.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadEflags.c @@ -17,6 +17,16 @@ // +/** + Reads the current value of the EFLAGS register. + + Reads and returns the current value of the EFLAGS register. This function is + only available on IA-32 and X64. This returns a 32-bit value on IA-32 and a + 64-bit value on X64. + + @return EFLAGS on IA-32 or RFLAGS on X64. + +**/ UINTN EFIAPI AsmReadEflags ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEs.c b/MdePkg/Library/BaseLib/Ia32/ReadEs.c index 8f73b99e6b..bcf6d9081c 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadEs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadEs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of ES Data Segment Register (ES). + + Reads and returns the current value of ES. This function is only available on + IA-32 and X64. + + @return The current value of ES. + +**/ UINT16 EFIAPI AsmReadEs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadFs.c b/MdePkg/Library/BaseLib/Ia32/ReadFs.c index 848d15581b..25fee08e4c 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadFs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadFs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of FS Data Segment Register (FS). + + Reads and returns the current value of FS. This function is only available on + IA-32 and X64. + + @return The current value of FS. + +**/ UINT16 EFIAPI AsmReadFs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGdtr.c b/MdePkg/Library/BaseLib/Ia32/ReadGdtr.c index 1bff03c7d6..1d70b7da12 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadGdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadGdtr.c @@ -18,6 +18,15 @@ #include +/** + Reads the current Global Descriptor Table Register(GDTR) descriptor. + + Reads and returns the current GDTR descriptor and returns it in Gdtr. This + function is only available on IA-32 and X64. + + @param Gdtr Pointer to a GDTR descriptor. + +**/ VOID EFIAPI InternalX86ReadGdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGs.c b/MdePkg/Library/BaseLib/Ia32/ReadGs.c index df495a0ff9..61ba83ef1c 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadGs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadGs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of GS Data Segment Register (GS). + + Reads and returns the current value of GS. This function is only available on + IA-32 and X64. + + @return The current value of GS. + +**/ UINT16 EFIAPI AsmReadGs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadIdtr.c b/MdePkg/Library/BaseLib/Ia32/ReadIdtr.c index 0cfbd63ff4..db43e9a0d7 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadIdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadIdtr.c @@ -18,6 +18,15 @@ #include +/** + Reads the current Interrupt Descriptor Table Register(GDTR) descriptor. + + Reads and returns the current IDTR descriptor and returns it in Idtr. This + function is only available on IA-32 and X64. + + @param Idtr Pointer to a IDTR descriptor. + +**/ VOID EFIAPI InternalX86ReadIdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadLdtr.c b/MdePkg/Library/BaseLib/Ia32/ReadLdtr.c index 813c08442e..c9e372486e 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadLdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadLdtr.c @@ -17,6 +17,15 @@ // +/** + Reads the current Local Descriptor Table Register(LDTR) selector. + + Reads and returns the current 16-bit LDTR descriptor value. This function is + only available on IA-32 and X64. + + @return The current selector of LDT. + +**/ UINT16 EFIAPI AsmReadLdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm0.c b/MdePkg/Library/BaseLib/Ia32/ReadMm0.c index 279e657edf..75b26827cd 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm0.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm0.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #0 (MM0). + + Reads and returns the current value of MM0. This function is only available + on IA-32 and X64. + + @return The current value of MM0. + +**/ UINT64 EFIAPI AsmReadMm0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm1.c b/MdePkg/Library/BaseLib/Ia32/ReadMm1.c index b46a44c8de..1dde8e1bfd 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm1.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm1.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #1 (MM1). + + Reads and returns the current value of MM1. This function is only available + on IA-32 and X64. + + @return The current value of MM1. + +**/ UINT64 EFIAPI AsmReadMm1 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm2.c b/MdePkg/Library/BaseLib/Ia32/ReadMm2.c index 1e4905f20e..bbe80726d1 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm2.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm2.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #2 (MM2). + + Reads and returns the current value of MM2. This function is only available + on IA-32 and X64. + + @return The current value of MM2. + +**/ UINT64 EFIAPI AsmReadMm2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm3.c b/MdePkg/Library/BaseLib/Ia32/ReadMm3.c index f742a9f6aa..868ef7a2c4 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm3.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm3.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #3 (MM3). + + Reads and returns the current value of MM3. This function is only available + on IA-32 and X64. + + @return The current value of MM3. + +**/ UINT64 EFIAPI AsmReadMm3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm4.c b/MdePkg/Library/BaseLib/Ia32/ReadMm4.c index 5b9920bf5b..3297c1851c 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm4.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm4.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #4 (MM4). + + Reads and returns the current value of MM4. This function is only available + on IA-32 and X64. + + @return The current value of MM4. + +**/ UINT64 EFIAPI AsmReadMm4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm5.c b/MdePkg/Library/BaseLib/Ia32/ReadMm5.c index 6b5d5df5b7..04db90bcc7 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm5.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm5.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #5 (MM5). + + Reads and returns the current value of MM5. This function is only available + on IA-32 and X64. + + @return The current value of MM5. + +**/ UINT64 EFIAPI AsmReadMm5 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm6.c b/MdePkg/Library/BaseLib/Ia32/ReadMm6.c index c0b1b51195..ed913945b7 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm6.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm6.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #6 (MM6). + + Reads and returns the current value of MM6. This function is only available + on IA-32 and X64. + + @return The current value of MM6. + +**/ UINT64 EFIAPI AsmReadMm6 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMm7.c b/MdePkg/Library/BaseLib/Ia32/ReadMm7.c index af98994636..fd24ff8cbd 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMm7.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMm7.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of 64-bit MMX Register #7 (MM7). + + Reads and returns the current value of MM7. This function is only available + on IA-32 and X64. + + @return The current value of MM7. + +**/ UINT64 EFIAPI AsmReadMm7 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadMsr64.c b/MdePkg/Library/BaseLib/Ia32/ReadMsr64.c index d93b9cd6e4..eed41d41df 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadMsr64.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadMsr64.c @@ -17,6 +17,20 @@ // +/** + Returns a 64-bit Machine Specific Register(MSR). + + Reads and returns the 64-bit MSR specified by Index. No parameter checking is + performed on Index, and some Index values may cause CPU exceptions. The + caller must either guarantee that Index is valid, or the caller must set up + exception handlers to catch the exceptions. This function is only available + on IA-32 and X64. + + @param Index The 32-bit MSR index to read. + + @return The value of the MSR identified by Index. + +**/ UINT64 EFIAPI AsmReadMsr64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadPmc.c b/MdePkg/Library/BaseLib/Ia32/ReadPmc.c index 761fa6bf4e..432c0139f9 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadPmc.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadPmc.c @@ -17,6 +17,17 @@ // +/** + Reads the current value of a Performance Counter (PMC). + + Reads and returns the current value of performance counter specified by + Index. This function is only available on IA-32 and X64. + + @param Index The 32-bit Performance Counter index to read. + + @return The value of the PMC specified by Index. + +**/ UINT64 EFIAPI AsmReadPmc ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadSs.c b/MdePkg/Library/BaseLib/Ia32/ReadSs.c index 002b20cbba..47750b93cc 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadSs.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadSs.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of Stack Segment Register (SS). + + Reads and returns the current value of SS. This function is only available on + IA-32 and X64. + + @return The current value of SS. + +**/ UINT16 EFIAPI AsmReadSs ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadTr.c b/MdePkg/Library/BaseLib/Ia32/ReadTr.c index 0069811f46..dd94b0b4d2 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadTr.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadTr.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of Task Register (TR). + + Reads and returns the current value of TR. This function is only available on + IA-32 and X64. + + @return The current value of TR. + +**/ UINT16 EFIAPI AsmReadTr ( diff --git a/MdePkg/Library/BaseLib/Ia32/ReadTsc.c b/MdePkg/Library/BaseLib/Ia32/ReadTsc.c index 3946ffc792..5689da7146 100644 --- a/MdePkg/Library/BaseLib/Ia32/ReadTsc.c +++ b/MdePkg/Library/BaseLib/Ia32/ReadTsc.c @@ -17,6 +17,15 @@ // +/** + Reads the current value of Time Stamp Counter (TSC). + + Reads and returns the current value of TSC. This function is only available + on IA-32 and X64. + + @return The current value of TSC + +**/ UINT64 EFIAPI AsmReadTsc ( diff --git a/MdePkg/Library/BaseLib/Ia32/SetJump.c b/MdePkg/Library/BaseLib/Ia32/SetJump.c index 5d8692a619..67d0571ecf 100644 --- a/MdePkg/Library/BaseLib/Ia32/SetJump.c +++ b/MdePkg/Library/BaseLib/Ia32/SetJump.c @@ -17,13 +17,39 @@ // #include +/** + Worker function that checks ASSERT condition for JumpBuffer + Checks ASSERT condition for JumpBuffer. + + If JumpBuffer is NULL, then ASSERT(). + For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT(). + + @param JumpBuffer A pointer to CPU context buffer. + +**/ VOID EFIAPI InternalAssertJumpBuffer ( IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer ); +/** + Saves the current CPU context that can be restored with a call to LongJump() + and returns 0. + + Saves the current CPU context in the buffer specified by JumpBuffer and + returns 0. The initial call to SetJump() must always return 0. Subsequent + calls to LongJump() cause a non-zero value to be returned by SetJump(). + + If JumpBuffer is NULL, then ASSERT(). + For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT(). + + @param JumpBuffer A pointer to CPU context buffer. + + @retval 0 Indicates a return from SetJump(). + +**/ _declspec (naked) UINTN EFIAPI diff --git a/MdePkg/Library/BaseLib/Ia32/SwapBytes64.c b/MdePkg/Library/BaseLib/Ia32/SwapBytes64.c index 714fd8acdc..018790041f 100644 --- a/MdePkg/Library/BaseLib/Ia32/SwapBytes64.c +++ b/MdePkg/Library/BaseLib/Ia32/SwapBytes64.c @@ -17,6 +17,18 @@ // +/** + Switches the endianess of a 64-bit integer. + + This function swaps the bytes in a 64-bit unsigned value to switch the value + from little endian to big endian or vice versa. The byte swapped value is + returned. + + @param Operand A 64-bit unsigned value. + + @return The byte swaped Operand. + +**/ UINT64 EFIAPI InternalMathSwapBytes64 ( diff --git a/MdePkg/Library/BaseLib/Ia32/Wbinvd.c b/MdePkg/Library/BaseLib/Ia32/Wbinvd.c index fa9c8b13a0..194d787f9c 100644 --- a/MdePkg/Library/BaseLib/Ia32/Wbinvd.c +++ b/MdePkg/Library/BaseLib/Ia32/Wbinvd.c @@ -17,6 +17,13 @@ // +/** + Executes a WBINVD instruction. + + Executes a WBINVD instruction. This function is only available on IA-32 and + X64. + +**/ VOID EFIAPI AsmWbinvd ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteCr0.c b/MdePkg/Library/BaseLib/Ia32/WriteCr0.c index 4f2406c67e..da9ba8d8b6 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteCr0.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteCr0.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Control Register 0 (CR0). + + Writes and returns a new value to CR0. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Cr0 The value to write to CR0. + + @return The value written to CR0. + +**/ UINTN EFIAPI AsmWriteCr0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteCr2.c b/MdePkg/Library/BaseLib/Ia32/WriteCr2.c index 8c5d617d53..98e44388b5 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteCr2.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteCr2.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Control Register 2 (CR2). + + Writes and returns a new value to CR2. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Cr2 The value to write to CR2. + + @return The value written to CR2. + +**/ UINTN EFIAPI AsmWriteCr2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteCr3.c b/MdePkg/Library/BaseLib/Ia32/WriteCr3.c index 7bcf537a7d..ca8784510f 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteCr3.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteCr3.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Control Register 3 (CR3). + + Writes and returns a new value to CR3. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Cr3 The value to write to CR3. + + @return The value written to CR3. + +**/ UINTN EFIAPI AsmWriteCr3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteCr4.c b/MdePkg/Library/BaseLib/Ia32/WriteCr4.c index 04e7b00491..548d30ee31 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteCr4.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteCr4.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Control Register 4 (CR4). + + Writes and returns a new value to CR4. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Cr4 The value to write to CR4. + + @return The value written to CR4. + +**/ UINTN EFIAPI AsmWriteCr4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr0.c b/MdePkg/Library/BaseLib/Ia32/WriteDr0.c index 0e9da73bf8..4ff4269a31 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr0.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr0.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 0 (DR0). + + Writes and returns a new value to DR0. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr0 The value to write to Dr0. + + @return The value written to Debug Register 0 (DR0). + +**/ UINTN EFIAPI AsmWriteDr0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr1.c b/MdePkg/Library/BaseLib/Ia32/WriteDr1.c index f9d1c2b5fb..480ff5bb32 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr1.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr1.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 1 (DR1). + + Writes and returns a new value to DR1. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr1 The value to write to Dr1. + + @return The value written to Debug Register 1 (DR1). + +**/ UINTN EFIAPI AsmWriteDr1 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr2.c b/MdePkg/Library/BaseLib/Ia32/WriteDr2.c index 61f0979bf1..2116a1047e 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr2.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr2.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 2 (DR2). + + Writes and returns a new value to DR2. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr2 The value to write to Dr2. + + @return The value written to Debug Register 2 (DR2). + +**/ UINTN EFIAPI AsmWriteDr2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr3.c b/MdePkg/Library/BaseLib/Ia32/WriteDr3.c index b39c7a4f9d..3294e9ecbe 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr3.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr3.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 3 (DR3). + + Writes and returns a new value to DR3. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr3 The value to write to Dr3. + + @return The value written to Debug Register 3 (DR3). + +**/ UINTN EFIAPI AsmWriteDr3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr4.c b/MdePkg/Library/BaseLib/Ia32/WriteDr4.c index c2503c26a8..418b6404e5 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr4.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr4.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 4 (DR4). + + Writes and returns a new value to DR4. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr4 The value to write to Dr4. + + @return The value written to Debug Register 4 (DR4). + +**/ UINTN EFIAPI AsmWriteDr4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr5.c b/MdePkg/Library/BaseLib/Ia32/WriteDr5.c index dbc6dc90d6..05267ae7e6 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr5.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr5.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 5 (DR5). + + Writes and returns a new value to DR5. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr5 The value to write to Dr5. + + @return The value written to Debug Register 5 (DR5). + +**/ UINTN EFIAPI AsmWriteDr5 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr6.c b/MdePkg/Library/BaseLib/Ia32/WriteDr6.c index 1da2a0fec4..2c3085e31d 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr6.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr6.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 6 (DR6). + + Writes and returns a new value to DR6. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr6 The value to write to Dr6. + + @return The value written to Debug Register 6 (DR6). + +**/ UINTN EFIAPI AsmWriteDr6 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr7.c b/MdePkg/Library/BaseLib/Ia32/WriteDr7.c index 22d28636fa..aeb08ada5d 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteDr7.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr7.c @@ -17,6 +17,17 @@ // +/** + Writes a value to Debug Register 7 (DR7). + + Writes and returns a new value to DR7. This function is only available on + IA-32 and X64. This writes a 32-bit value on IA-32 and a 64-bit value on X64. + + @param Dr7 The value to write to Dr7. + + @return The value written to Debug Register 7 (DR7). + +**/ UINTN EFIAPI AsmWriteDr7 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteGdtr.c b/MdePkg/Library/BaseLib/Ia32/WriteGdtr.c index bc599e0945..4ed0180e6f 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteGdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteGdtr.c @@ -18,6 +18,15 @@ #include +/** + Writes the current Global Descriptor Table Register (GDTR) descriptor. + + Writes and the current GDTR descriptor specified by Gdtr. This function is + only available on IA-32 and X64. + + @param Gdtr Pointer to a GDTR descriptor. + +**/ VOID EFIAPI InternalX86WriteGdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c index b92dfbdfb9..88c74b60e8 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c @@ -17,6 +17,15 @@ // #include +/** + Writes the current Interrupt Descriptor Table Register(GDTR) descriptor. + + Writes the current IDTR descriptor and returns it in Idtr. This function is + only available on IA-32 and X64. + + @param Idtr Pointer to a IDTR descriptor. + +**/ VOID EFIAPI InternalX86WriteIdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteLdtr.c b/MdePkg/Library/BaseLib/Ia32/WriteLdtr.c index 600f015b35..82ba9d0ff9 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteLdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteLdtr.c @@ -17,6 +17,15 @@ // +/** + Writes the current Local Descriptor Table Register (GDTR) selector. + + Writes and the current LDTR descriptor specified by Ldtr. This function is + only available on IA-32 and X64. + + @param Ldtr 16-bit LDTR selector value. + +**/ VOID EFIAPI AsmWriteLdtr ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm0.c b/MdePkg/Library/BaseLib/Ia32/WriteMm0.c index c9789315b1..703ef29a33 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm0.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm0.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #0 (MM0). + + Writes the current value of MM0. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM0. + +**/ VOID EFIAPI AsmWriteMm0 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm1.c b/MdePkg/Library/BaseLib/Ia32/WriteMm1.c index 8a9900bede..ee08ab7ac9 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm1.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm1.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #1 (MM1). + + Writes the current value of MM1. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM1. + +**/ VOID EFIAPI AsmWriteMm1 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm2.c b/MdePkg/Library/BaseLib/Ia32/WriteMm2.c index fb2196963c..08bbb6645e 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm2.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm2.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #2 (MM2). + + Writes the current value of MM2. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM2. + +**/ VOID EFIAPI AsmWriteMm2 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm3.c b/MdePkg/Library/BaseLib/Ia32/WriteMm3.c index d788f3be8c..bef0f6502d 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm3.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm3.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #3 (MM3). + + Writes the current value of MM3. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM3. + +**/ VOID EFIAPI AsmWriteMm3 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm4.c b/MdePkg/Library/BaseLib/Ia32/WriteMm4.c index 7b0160d2a9..eed122d42c 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm4.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm4.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #4 (MM4). + + Writes the current value of MM4. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM4. + +**/ VOID EFIAPI AsmWriteMm4 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm5.c b/MdePkg/Library/BaseLib/Ia32/WriteMm5.c index 0dd02b706f..2f94baddfa 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm5.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm5.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #5 (MM5). + + Writes the current value of MM5. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM5. + +**/ VOID EFIAPI AsmWriteMm5 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm6.c b/MdePkg/Library/BaseLib/Ia32/WriteMm6.c index de081405e1..32563770f7 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm6.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm6.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #6 (MM6). + + Writes the current value of MM6. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM6. + +**/ VOID EFIAPI AsmWriteMm6 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMm7.c b/MdePkg/Library/BaseLib/Ia32/WriteMm7.c index 0bb8d205a9..c5a859eb57 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMm7.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMm7.c @@ -17,6 +17,15 @@ // +/** + Writes the current value of 64-bit MMX Register #7 (MM7). + + Writes the current value of MM7. This function is only available on IA32 and + X64. + + @param Value The 64-bit value to write to MM7. + +**/ VOID EFIAPI AsmWriteMm7 ( diff --git a/MdePkg/Library/BaseLib/Ia32/WriteMsr64.c b/MdePkg/Library/BaseLib/Ia32/WriteMsr64.c index 06cf910c48..77a068950a 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteMsr64.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteMsr64.c @@ -17,6 +17,23 @@ // +/** + Writes a 64-bit value to a Machine Specific Register(MSR), and returns the + value. + + Writes the 64-bit value specified by Value to the MSR specified by Index. The + 64-bit value written to the MSR is returned. No parameter checking is + performed on Index or Value, and some of these may cause CPU exceptions. The + caller must either guarantee that Index and Value are valid, or the caller + must establish proper exception handlers. This function is only available on + IA-32 and X64. + + @param Index The 32-bit MSR index to write. + @param Value The 64-bit value to write to the MSR. + + @return Value + +**/ UINT64 EFIAPI AsmWriteMsr64 ( -- cgit v1.2.3