summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseLib
AgeCommit message (Collapse)Author
2012-10-30Fix memory out of band access in AsmFxSave() and AsmFxRestore(). lgao4
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13894 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-25Correct a bug in AsmCpuidEx() to return correct ECX and EDX.niruiyu
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13359 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-11Current IPF version SwitchStack implementation uses loadrs instruction to ↵li-elvin
restore dirty partition of register stack from the backing store, but there is no guarantee to make the backing store valid before. So add flushrs before loadrs to make sure backing store valid. Signed-off-by: Li Elvin <elvin.li@intel.com> Reviewed-by: Li Kevin <kevin.y.li@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13183 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27Update the modifier of ThunkContext parameter for AsmPrepareThunk16() in ↵lgao4
BaseLib from OUT to IN OUT. Signed-off-by: lgao4 Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13038 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-28Roll back the previous change in MdePkg BaseLib Ia32 Thunk16.S and EcpPkg ↵lgao4
GlueLib BaseLib Ia32 Thunk16.S, and still use the hard code offset in them to avoid GCC compiler create the unexpected instruction. Signed-off-by: lgao4 Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12898 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-20Clean up the hard code offset in MdePkg BaseLib Ia32 Thunk16.S and EcpPkg ↵lgao4
GlueLib BaseLib Ia32 Thunk16.S. Signed-off-by: lgao4 Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12889 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-15Fix the issue to clear the high 16-bit of EAX before use it Thunk code.lgao4
This patch updates MdePkg BaseLib, EcpPkg EdkIIGlueLib BaseLib and ThunkLib. Signed-off-by: lgao4 Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12876 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-25add missing <BR>hhtian
Signed-off-by: hhtian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12781 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-08MdePkg/BaseLib: Replaced inline assembly for ARMGCC by GCC assembly source fileoliviermartin
The registers used to passed arguments to the DxeCore entrypoint in the inline assembly function InternalSwitchStackAsm() where switched at compilation time. This change replaces the inline assembly by a pure assembly source file to avoid this kind of optimization. Note: Inline assembly is generally not recommanded in system programming. Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12674 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-08Fix Xcode link failure. Relocations are not supported in .text sections.andrewfish
Per Rui's review of the patch _16GdtrBase is a label that is patched by C code so it does require initialization. approved-by: andrewfish reviewed-by: jljusten reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12515 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-13Minor copyright format updatehhtian
Signed-off-by: hhtian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12334 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-02Move generic IA32_SEGMENT_DESCRIPTOR definition to BaseLib.h.li-elvin
Signed-off-by: li-elvin Reviewed-by: mdkinney git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12265 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-02MdePkg: Fixed hang/reset in thunk code when building with GCC X64geekboy15a
Reverted changes of data areas from .long back to .space 4. This was done because the size of .long is based off of .int and may vary. Using a fixed size is required because these values are for patching code. Also note that .space will automatically initialize the data to zero. Not initializing all values to zero was causing the hang/reset. Signed-off-by: geekboy15a Reviewed-by: darylm503 Reviewed-by: jljusten git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12079 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-12MdePkg: Fix X64 clang compile issues.andrewfish
Fixed issues with X64 clang, and also make StackSwitch push a zero on the new stack to prevent a stack unwind into memory that is no longer valid. signed-off-by: andrewfish reviewed-by: lgao4 reviewed-by: mdkinney git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12007 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-28Clarify the requirements for the Destination parameter of UnicodeStrToAsciiStr.jcarsey
signed-off-by:jcarsey Reviewed-by:lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11917 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-15For BaseLib IsNull() function , update retval value comment to match its ↵lgao4
function description. Signed-off-by: lgao4 Reviewed-by: rni2 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11825 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-01Replace INTERWORK_FUNC, with GCC_ASM_EXPORT() and GCC_ASM_IMPORT() and ↵andrewfish
update the rest of the MdePkg ARM assembler to use the macro. Leave the old INTERWORK_FUNC macro in place until we can make sure all the other packages have been updated and then it can be removed. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11289 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-15Fix issue with CodeSourcery gcc requiring assembly functions to have a .type ↵andrewfish
define inorder to support interworking (calling from thumb(C code) to ARM code (hadn written assembly). We had to add a macro as the .type directive is not supported, or needed, by Xcode. All ARM .S files need to be updated. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11167 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-06MdePkg: Fix GCC Thunk support for IA32jljusten
In r11047 Ia32/Thunk.S was modified. However, the current implemention of Ia32/Thunk.S has contant values in the code which must be updated if the code is changed. This change updates those constants for the r11047 change. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11121 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-12Fix the issue that the high 16-bit of EAX may contain invalid data, which ↵li-elvin
cause bad stack pointer, the change will ensure the high 16-bit of EAX is cleared. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11047 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-16Refine code.sfu5
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10799 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-13Refine code.sfu5
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10793 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-09Fixed K9 scan issues.hhuan13
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10781 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-25Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10604 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-24Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10596 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-22Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10594 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-22Minor grammatical work--mostly adding periods. Items with ONLY period added ↵MyronPorter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10593 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-11Minor grammatical work--mostly adding periods. Sending separately a list ↵myronporter
of files missing Doxygen @param and @return information. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10572 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-01Fixed issue with InternalX86ReadIdtr referencing LDT read and not IDT read ↵geekboy15a
operation. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10559 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-20MdePkg BaseLib: Fix GCC build breakjljusten
Only use X86MemoryFence.c for INTEL and MSFT. MemoryFence is defined in GccInline.c for GCC. This change is the same as r10522, but for X64. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10525 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-20Fix GCC build break as MemoryFence() API has already been included in ↵qhuang8
GccInline.c in BaseLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10522 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-20Fix some typosqhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10521 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-18Update copyright formathhtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10506 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-181. Restore the inline C implementation of GCC assembly files that was ↵qhuang8
temporarily removed in Svn r10045. 2. Remove 139 GCC assembly files whose functionality have been covered in the inline C implementation. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10503 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-10Fix bug in AsmCpuVirtual() to return 1 instead of 0 when CPU is in virtual mode.xdu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10475 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-07Fix ICC 11.1 build breakmdkinney
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10466 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23Update the copyright notice formathhtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10405 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-16Fixed GCC 4.4 build issue due to incorrect prefix. Now using ASM_PFX to ↵geekboy15a
correctly set the prefix. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10377 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-16Fixed GCC 4.4 build issue. Also fixed issue where upper 32-bits may be lost ↵geekboy15a
during AND operation. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10376 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-17Add Math64.S to reduce the number of compiler intrinsics that need to be ↵andrewfish
supported. It turns out they seem to change from GCC generation to generation. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10259 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01Remove assumption that the transition code for transitioning from 64-bit to ↵mdkinney
32-bit mode is 64 bytes. Instead compute the size based on the implementation in the ASM file. Update logic to align new 32-bit stack on a 4 byte boundary Update logic to prevent one slot overlap between the transition code and the new stack. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10133 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-241. Correct File header to ## @filelgao4
2. Remove unnecessary .common] postfix on section. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10052 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-23Disable interrupt when changing IDTR register.klu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10046 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-23Temporarily remove the C implementation of some GCC assembly files in ↵qhuang8
MdePkg. They are kept in repository and will be re-evaluate later. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10045 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-27Clean up MdePkg source to correct some coding style issues, etc.qhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9832 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-23Fix a bug in MdePkg BaseLib: StrnCat() and AsciiStrnCat() should NULL ↵qhuang8
terminated the final destination string when Length is equal to the length of Source string git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9588 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-07according to IA32 intel architecture spec, mwait instuction needs not the ↵eric_tian
operands. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9527 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-07fix GCC build issue, mWait instruction need not the operands.eric_tian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9526 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-06Fixes for ARM build in the EdkCompatibilityPkg and a couple of Xcode fixes ↵AJFISH
for MdePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9520 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-211) Add new BaseLib API GetPreviousNode()mdkinney
2) Clarify comment for the value returned from GetNextNode() if the end of list is reached. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9464 6f19259b-4bc3-4df7-8a09-765794883524