Commit Graph

49 Commits

Author SHA1 Message Date
Ard Biesheuvel 67b8f806d2 MdePkg/Base: introduce MAX_ALLOC_ADDRESS
On some architectures, the maximum representable address deviates from
the virtual address range that is accessible by the firmware at boot
time. For instance, on AArch64, UEFI mandates a 4 KB page size, which
limits the address space to 48 bits, while more than that may be
populated on a particular platform, for use by the OS.

So introduce a new macro MAX_ALLOC_ADDRESS, which represent the maximum
address the firmware should take into account when allocating memory
ranges that need to be accessible by the CPU at boot time.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2018-12-20 11:01:38 +01:00
Liming Gao 9095d37b8f MdePkg: Clean up source files
1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2018-06-28 11:19:47 +08:00
Sean Brogan d7a09cb86a MdePkg/BaseSafeIntLib: Add SafeIntLib class and instance
https://bugzilla.tianocore.org/show_bug.cgi?id=798

SafeIntLib provides helper functions to prevent integer overflow
during type conversion, addition, subtraction, and multiplication.

Conversion Functions
====================
* Converting from a signed type to an unsigned type of the same
  size, or vice-versa.
* Converting to a smaller type that could possibly overflow.
* Converting from a signed type to a larger unsigned type.

Unsigned Addition, Subtraction, Multiplication
===============================================
* Unsigned integer math functions protect from overflow and
  underflow (in case of subtraction).

Signed Addition, Subtraction, Multiplication
============================================
* Strongly consider using unsigned numbers.
* Signed numbers are often used where unsigned numbers should
  be used. For example file sizes and array indices should always
  be unsigned. Subtracting a larger positive signed number from a
  smaller positive signed number with SafeInt32Sub() will succeed,
  producing a negative number, that then must not be used as an
  array index (but can occasionally be used as a pointer index.)
  Similarly for adding a larger magnitude negative number to a
  smaller magnitude positive number.
* SafeIntLib does not protect you from such errors. It tells you
  if your integer operations overflowed, not if you are doing the
  right thing with your non-overflowed integers.
* Likewise you can overflow a buffer with a non-overflowed
  unsigned index.

Based on content from the following branch/commits:
https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport
21ef3a321c
ca516b1a61
33bab4031a

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2018-01-25 09:42:20 -08:00
Liming Gao c0f7a5d4b3 MdePkg: Disable VS warning 4701 & 4703 for VS2017
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2017-11-29 16:03:10 +08:00
Ard Biesheuvel 08855193ca MdePkg/ProcessorBind: add defines for page allocation granularity
The UEFI spec differs between architectures in the minimum alignment
and granularity of page allocations that are visible to the OS as
EFI_MEMORY_RUNTIME regions.

So define macros that carry these values to the respective ProcessorBind.h
header files.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-03-06 11:27:00 +01:00
Thomas Huth 00b7cc0fe3 MdePkg: Fix some typing errors in the header files
Correct the typos in some header files of MdePkg.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
2016-10-07 18:09:09 -07:00
Liming Gao 592a3790d8 MdePkg: Disable VS2015 warning C4701 & C4703
C4701 & C4703 may cause false positive issues.
They have been disabled in VS2013.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19111 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-04 03:05:28 +00:00
Shumin Qiu a5077fd0d2 MdePkg IA32/X64 ProcessorBind.h : Disable the C4701 and C4703 warnings for VS2013.
As they may be raised as false positive in building.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16594 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-09 04:50:11 +00:00
Jordan Justen 02eef55311 MdePkg Base.h: Always define ASM_PFX
Some compilers may define __USER_LABEL_PREFIX__ to determine the
prefix used with ASM_PFX. Otherwise, IA32 will use a single underscore
'_' character, and all other architectures will use an empty prefix.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16019 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-01 17:23:10 +00:00
Liming Gao 068a82fc5a 1. Add defines for MAX values for UEFI data types.
2. Remove the #defines and add the extern declarations for gEfiDebugPortVariableGuid and gEfiDebugPortDevicePathGuid.

Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: michael.d.kinney@intel.com
Reviewed-by: Star Zeng <star.zeng@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14465 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-12 02:48:08 +00:00
lgao4 d22ebbe39f Update MdePkg and EdkCompatibilityPkg INT8 definition to be typedef signed char to follow UEFI spec.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael D. Kinney <michael.d.kinney@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13312 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-16 00:42:21 +00:00
lgao4 a0e1b12735 Add the missing default definition of EFIAPI in Ia32/ProcessorBind.h.
Signed-off-by: lgao4
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11813 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-13 03:58:18 +00:00
hhtian 9df063a06a Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10403 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23 15:46:20 +00:00
myronporter 8c18db2750 Grammatical and disclaimer changes (does not follow internal C coding stds.)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10236 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-12 23:09:20 +00:00
geekboy15a 52aa9e136b Updating processor bindings to not use stdint.h. Also added code to verify at compile time that data widths are correct.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10232 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-11 20:52:54 +00:00
eric_tian 8fe69f133e disable ICC compiler warning #593: variable was set but never used.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9705 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-11 02:29:54 +00:00
mdkinney 8992ce066e Fix file headers and a few comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9188 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-24 23:37:52 +00:00
mdkinney fc0072c87e Move content from CPU specific ProcessorBind.h files into Base.h if the content is the same for all supported CPU architectures.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9097 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-18 20:47:01 +00:00
eric_tian d4cf6b6c97 redefine the ASM_PFX to let it can work on Apple/NetBSD and other Unix* platform.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9073 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-14 09:39:55 +00:00
mdkinney 68167fed0e Fix build breaks from comment clean up checkin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8468 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04 18:57:44 +00:00
pkandel 1a2f870c9b Second set of changes based on a review of the code comments in the Include directory for typos, grammar issues, and language clarity.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8467 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04 16:16:15 +00:00
xli24 7b2cc5499f Remove __APPLE__ usage in ProcessorBind.h files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8362 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-21 02:24:02 +00:00
xli24 d5172f911d 1. Remove .extern from GCC assembly.
2. Define macro for .global/.globl in GCC assembly.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8344 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 09:42:59 +00:00
jljusten 6149e6bb4f Allow EFIAPI to be defined on the compiler command line.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8061 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-10 20:58:10 +00:00
klu2 5cfbd05587 1, Use #if defined() to judge the switching macro such as compiler macro.
Original, some code directly judge the value of these macros, but linux ICC compiler will report error as "zero used for undefined preprocessing identifier". So it is better judge whether these macros are defined before accessing their value.
2, Use #if defined() style to replace #ifdef style.
It is good to keep consistent style for this case.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7596 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-23 05:51:02 +00:00
qhuang8 373ade0eb6 Update copyright for files modified in this year
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7148 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-29 14:07:07 +00:00
mdkinney f4ec40abd6 Add more detailed comments for many of the Base Types
Remove all declarations of UINT8_MAX.  Use BIT8-1 instead.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6909 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-07 23:10:08 +00:00
mdkinney 9a1d00cbb5 Update FUNCTION_ENTRY_POINT() to be compatible with a wider variety of input parameters.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6883 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 23:23:59 +00:00
gikidy 3963c4bf44 Add comments for the MACRO follow the Spec, and change some definition not match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6852 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 02:28:51 +00:00
lgao4 14996c9669 Correct Minor Comments in M3 to M4 review.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6842 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 08:35:07 +00:00
vanjeff 9510db651c update comments and refine code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6559 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-17 08:13:37 +00:00
jljusten 4ef8fb487f trunk/edk2/MdePkg/Include/X64/ProcessorBind.h:
trunk/edk2/MdePkg/Include/Ia32/ProcessorBind.h:
trunk/edk2/MdePkg/Include/Ipf/ProcessorBind.h:
* Do not ignore this warning (Intel Compiler warning #593; Local
  Variable is set, but not used.)  We will attempt to clean up
  code that generates this particular warning.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6083 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07 16:40:43 +00:00
jljusten 427c6c737e edk2/MdePkg/Include/Ia32/ProcessorBind.h:
* Disable ICC warning for: "LocalVariable" was set but never used


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5804 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-03 21:07:42 +00:00
jljusten ed300ce2a6 edk2/MdePkg/Include/Ia32/ProcessorBind.h:
* Add mask for ICC warning when a parameter is not referenced in a
  function.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5757 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-29 23:04:44 +00:00
klu2 3566565aa4 Use doxygen comment style for document entity such as struct, enum, variable that use /// but not //
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5644 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14 02:56:09 +00:00
eric_tian ed0b86b183 make change to support UnixPkg build. The changes are listed as follows:
1. change ASM_PFX() macro, the underscore preceding to function symbol don't be added in Linux.
2. move some illegal characters in .S file.
3. change ELFGCC flag in tools_def.template to support Linux&ELFGCC build

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5381 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-30 05:50:49 +00:00
klu2 86b2b825c4 Use #if...#else to not confuse some lint tools for definition of EFIAPI
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5316 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-02 02:22:31 +00:00
klu2 d1057d4ec5 Fix comment typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5106 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-22 02:33:49 +00:00
mdkinney 24a7505cef Add FUNCTION_ENTRY_POINT macro
Update DxeDebugLibSerialPort to have a module type of BASE



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4328 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-27 02:48:59 +00:00
jwang36 27af6b876a Added "#define ASM_PFX(name) _##name" for GNU assembly code preprocessing
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3409 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 05:34:35 +00:00
AJFISH b483e39524 Updated comments for IntelCompiler specific warnings
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3133 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 18:48:06 +00:00
AJFISH 842f5579c7 Updated headers to follow coding standard
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2815 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-27 22:53:31 +00:00
yshang1 959ccb23c6 Move to directory "Include"
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2646 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-08 11:31:52 +00:00
lhauch 586cd1f1f4 Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing builds. Also updated the SPD and FPD files UiNames
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2616 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-01 14:49:55 +00:00
klu2 a477a165ff Fix some Linux's build issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2138 6f19259b-4bc3-4df7-8a09-765794883524
2006-12-26 02:48:15 +00:00
mdkinney caae4de6b6 Add #define CPU_STACK_ALIGNMENT to the ProcessorBind.h for each of the supported CPU architectures. This value is sizeof(UINTN) for IA-32, X64, and EBC. It is 16 bytes for IPF.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1920 6f19259b-4bc3-4df7-8a09-765794883524
2006-11-09 21:26:29 +00:00
jwang36 22a8f52f8e Added two #pragma to disable 4505 & 4206 warnings for MSFT compiler. This is for compiling source files with pre-compiled header file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1442 6f19259b-4bc3-4df7-8a09-765794883524
2006-09-05 01:43:14 +00:00
lgao4 0647c9adf9 Remove BugBug in comments and adjust function header according to code style doc.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1055 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-20 09:08:37 +00:00
bbahnsen 878ddf1fc3 Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
2006-04-21 22:54:32 +00:00