Commit Graph

25 Commits

Author SHA1 Message Date
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
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
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 39899436d3 Add defines for MAX values for EBC arch.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: michael.d.kinney@intel.com

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14547 6f19259b-4bc3-4df7-8a09-765794883524
2013-08-13 08:45:45 +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
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 af2dc6a70b Grammatical and disclaimer changes (does not follow internal C coding stds.)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10235 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-12 22:19:12 +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
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
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
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
klu2 d484d12067 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@5642 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14 02:53:43 +00:00
qwang12 7d0db9ceb5 CHAR8 is defined as "1-byte Character" in UEFI spec, but not "unsigned Character". Most compiler treats "char" as signed unless overide by compiler options. Most compiler generate warnings for statement like "CHAR8 *S = "Hello"". In addition, we have defined CHAR8 as char for processor arch such as IA32, X64 and IPF in EDK II.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5329 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-05 01:57:08 +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
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
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
qhuang8 4ba61e5e2a 1. UINTN & INTN issue for EBC architecture:
The MAX_BIT of EBC will no longer be fixed to bit 63. It is defined as (1ULL << (sizeof (INTN) * 8 - 1)).
	Make EdkModulePkg & MdePkg EBC compiler clean: treat all EFI_STATUS error code as variable.
2. PrintLib
	Complete all missing ASSERT()s.
	Fix “\n” & “%\n” issue thanks to the clarification of MWG 0.56d.
	Adjust StatusString array to support EBC build.
3. BaseMemoryLib
	Adjust ASSERT () & function header of ComparaMem, SetMemXX, ScanMemXX to synchronize with MWG 0.56d.
4.SmbusLib
	Change Pec bit to bit 22 SmBusAddress to synchronize MWG 0.56d.
	Add ASSERT()s to check if length is illegal for SmBusBlockWrite() & SmBusProcessBlock() since it is 6 bit now.
5. PerformanceLib
	Rename “EdkDxePerformanceLib” & “EdkPeiPerformanceLib” to “DxePerformanceLib” & “PeiPerformanceLib” respectively.
	Synchronize the function header of GetPerformanceMeasurement() with MWG 0.56d.
6. BasePeCoffLoaderLib.
	Make PeCoffLoaderLoadImage () Assert() if ImageContext is NULL>
	Make PeCoffLoaderLoadImage () return RETURN_INVALID_PARAMETER if the ImageAddress in ImageContext is 0.
	Adjust some coding style.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@593 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-22 06:08:00 +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