217 Commits

Author SHA1 Message Date
Jian J Wang
364a54742f MdePkg/BaseLib: Add stack switch related definitions for IA32
The new definitions include two structures

  IA32_TASK_STATE_SEGMENT
  IA32_TSS_DESCRIPTOR

two macros

  IA32_GDT_TYPE_TSS
  IA32_GDT_ALIGNMENT

and one API

  VOID
  EFIAPI
  AsmWriteTr (
    IN UINT16 Selector
    );

They're needed to setup task gate and interrupt stack table for stack switch.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Suggested-by: Ayellet Wolman <ayellet.wolman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jeff Fan <vanjeff_919@hotmail.com>
Reviewed-by: Jiewen.yao@intel.com
2017-12-08 14:38:48 +08:00
Song, BinX
50de6bfb30 MdePkg: Fix MSFT C4255 warning
V2:
Fix MSFT C4255 warning
V1:
Enable MSFT C4255 warning.

From MSDN:
Compiler Warning (level 4) C4255
function' : no function prototype given: converting '()' to '(void)'
The compiler did not find an explicit list of arguments to a function.
This warning is for the C compiler only.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bell Song <binx.song@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-11-14 18:18:48 +08:00
Qin Long
9ec9a7a597 MdePkg/BaseLib: Add one wrapper on RdRand access for parameter check.
Add one wrapper implementation over assembly RdRand access to check
possible NULL parameter, for better alignment with comment description.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qin Long <qin.long@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-16 16:49:10 +08:00
Hao Wu
bfa97024df MdePkg/BaseLib: Remove the unnecessary '_' before library APIs in ASM/NASM
The leading underscore (i.e. '_') before the names of some BaseLib library
API in ASM/NASM files is unnecessary. It will cause link error with GCC
tool chains.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-18 20:12:39 +08:00
Liming Gao
6596018924 MdePkg BaseLib: Add the missing nasm source file InternalSwitchStack.nasm
BaseLib Ia32 InternalSwitchStack.S has no matched InternalSwitchStack.nasm.
Use ObjDump to verify the output object files be same.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
2016-07-20 13:24:30 +08:00
Liming Gao
7e08bace8c MdePkg BaseLib: Convert Ia32/DisablePaging32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/DisablePaging32.asm to Ia32/DisablePaging32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:51:52 +08:00
Jordan Justen
b204f668cd MdePkg BaseLib: Convert Ia32/DisableCache.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/DisableCache.asm to Ia32/DisableCache.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:25 +08:00
Jordan Justen
22327b5a1b MdePkg BaseLib: Convert Ia32/EnableCache.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/EnableCache.asm to Ia32/EnableCache.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:24 +08:00
Jordan Justen
649509ef6e MdePkg BaseLib: Convert Ia32/ARShiftU64.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ARShiftU64.asm to Ia32/ARShiftU64.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:24 +08:00
Jordan Justen
f8e49a6add MdePkg BaseLib: Convert Ia32/CpuBreakpoint.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/CpuBreakpoint.asm to Ia32/CpuBreakpoint.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:23 +08:00
Jordan Justen
3357f0838f MdePkg BaseLib: Convert Ia32/CpuId.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/CpuId.asm to Ia32/CpuId.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:22 +08:00
Jordan Justen
c7f75a99d6 MdePkg BaseLib: Convert Ia32/CpuIdEx.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/CpuIdEx.asm to Ia32/CpuIdEx.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:21 +08:00
Jordan Justen
0583d9810e MdePkg BaseLib: Convert Ia32/CpuPause.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/CpuPause.asm to Ia32/CpuPause.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:21 +08:00
Jordan Justen
124ae239bb MdePkg BaseLib: Convert Ia32/DisableInterrupts.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/DisableInterrupts.asm to Ia32/DisableInterrupts.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:20 +08:00
Jordan Justen
fe4b3b4bea MdePkg BaseLib: Convert Ia32/DivU64x32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/DivU64x32.asm to Ia32/DivU64x32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:19 +08:00
Jordan Justen
fb79aa01bd MdePkg BaseLib: Convert Ia32/DivU64x32Remainder.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/DivU64x32Remainder.asm to Ia32/DivU64x32Remainder.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:18 +08:00
Jordan Justen
cb44f80afc MdePkg BaseLib: Convert Ia32/EnableDisableInterrupts.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/EnableDisableInterrupts.asm to Ia32/EnableDisableInterrupts.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:18 +08:00
Jordan Justen
f67a4344d2 MdePkg BaseLib: Convert Ia32/EnableInterrupts.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/EnableInterrupts.asm to Ia32/EnableInterrupts.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:17 +08:00
Jordan Justen
4fc416a69b MdePkg BaseLib: Convert Ia32/EnablePaging32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/EnablePaging32.asm to Ia32/EnablePaging32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:16 +08:00
Jordan Justen
2aefd3c371 MdePkg BaseLib: Convert Ia32/FlushCacheLine.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/FlushCacheLine.asm to Ia32/FlushCacheLine.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:16 +08:00
Jordan Justen
4a848ec9f1 MdePkg BaseLib: Convert Ia32/FxSave.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/FxSave.asm to Ia32/FxSave.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:15 +08:00
Jordan Justen
73c40386d0 MdePkg BaseLib: Convert Ia32/FxRestore.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/FxRestore.asm to Ia32/FxRestore.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:14 +08:00
Jordan Justen
3ebf5f9a09 MdePkg BaseLib: Convert Ia32/Invd.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/Invd.asm to Ia32/Invd.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:14 +08:00
Jordan Justen
f493cf81fe MdePkg BaseLib: Convert Ia32/LongJump.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/LongJump.asm to Ia32/LongJump.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:13 +08:00
Jordan Justen
c41d8eb046 MdePkg BaseLib: Convert Ia32/LRotU64.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/LRotU64.asm to Ia32/LRotU64.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:13 +08:00
Jordan Justen
76a7787865 MdePkg BaseLib: Convert Ia32/LShiftU64.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/LShiftU64.asm to Ia32/LShiftU64.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:12 +08:00
Jordan Justen
f8b4c87cae MdePkg BaseLib: Convert Ia32/MultU64x32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/MultU64x32.asm to Ia32/MultU64x32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:11 +08:00
Jordan Justen
f15f4aef83 MdePkg BaseLib: Convert Ia32/MultU64x64.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/MultU64x64.asm to Ia32/MultU64x64.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:11 +08:00
Jordan Justen
fd890f5933 MdePkg BaseLib: Convert Ia32/ModU64x32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ModU64x32.asm to Ia32/ModU64x32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:10 +08:00
Jordan Justen
fdf359f3c9 MdePkg BaseLib: Convert Ia32/Monitor.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/Monitor.asm to Ia32/Monitor.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:10 +08:00
Jordan Justen
c3a324ff87 MdePkg BaseLib: Convert Ia32/Mwait.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/Mwait.asm to Ia32/Mwait.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:09 +08:00
Jordan Justen
85b5a2e881 MdePkg BaseLib: Convert Ia32/ReadCr0.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadCr0.asm to Ia32/ReadCr0.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:08 +08:00
Jordan Justen
ab140cc176 MdePkg BaseLib: Convert Ia32/ReadCr2.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadCr2.asm to Ia32/ReadCr2.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:07 +08:00
Jordan Justen
d45cc7c379 MdePkg BaseLib: Convert Ia32/ReadCr3.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadCr3.asm to Ia32/ReadCr3.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:07 +08:00
Jordan Justen
ee936737a7 MdePkg BaseLib: Convert Ia32/ReadCr4.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadCr4.asm to Ia32/ReadCr4.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:06 +08:00
Jordan Justen
d6ef9f221b MdePkg BaseLib: Convert Ia32/ReadDr0.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr0.asm to Ia32/ReadDr0.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:05 +08:00
Jordan Justen
f7a5a4d176 MdePkg BaseLib: Convert Ia32/ReadDr1.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr1.asm to Ia32/ReadDr1.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:05 +08:00
Jordan Justen
e8531927e1 MdePkg BaseLib: Convert Ia32/ReadDr2.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr2.asm to Ia32/ReadDr2.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:04 +08:00
Jordan Justen
cbf276031e MdePkg BaseLib: Convert Ia32/ReadDr3.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr3.asm to Ia32/ReadDr3.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:03 +08:00
Jordan Justen
41aa07b39c MdePkg BaseLib: Convert Ia32/ReadDr4.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr4.asm to Ia32/ReadDr4.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:03 +08:00
Jordan Justen
cb1ff3808c MdePkg BaseLib: Convert Ia32/ReadDr5.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr5.asm to Ia32/ReadDr5.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:02 +08:00
Jordan Justen
38cb6b2b08 MdePkg BaseLib: Convert Ia32/ReadDr6.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr6.asm to Ia32/ReadDr6.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:02 +08:00
Jordan Justen
6bf95c947d MdePkg BaseLib: Convert Ia32/ReadDr7.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadDr7.asm to Ia32/ReadDr7.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:01 +08:00
Jordan Justen
072cb8c4f2 MdePkg BaseLib: Convert Ia32/ReadEflags.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadEflags.asm to Ia32/ReadEflags.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:00 +08:00
Jordan Justen
306e1be5ce MdePkg BaseLib: Convert Ia32/ReadMm0.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm0.asm to Ia32/ReadMm0.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:49:00 +08:00
Jordan Justen
408bd2031d MdePkg BaseLib: Convert Ia32/ReadMm1.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm1.asm to Ia32/ReadMm1.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:48:59 +08:00
Jordan Justen
79254da137 MdePkg BaseLib: Convert Ia32/ReadMm2.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm2.asm to Ia32/ReadMm2.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:48:58 +08:00
Jordan Justen
f8d24ea293 MdePkg BaseLib: Convert Ia32/ReadMm3.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm3.asm to Ia32/ReadMm3.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:48:58 +08:00
Jordan Justen
901645f146 MdePkg BaseLib: Convert Ia32/ReadMm4.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm4.asm to Ia32/ReadMm4.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:48:57 +08:00
Jordan Justen
e0174950f2 MdePkg BaseLib: Convert Ia32/ReadMm5.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/ReadMm5.asm to Ia32/ReadMm5.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-06-28 09:48:56 +08:00