From 94952554cc604750f3df3d4e8ae068703481d258 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Tue, 25 Dec 2012 02:25:50 +0000 Subject: Add ASSERT() for BitField operations to make sure the input value is valid. Signed-off-by: Liming Gao Reviewed-by: Kinney, Michael D git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14019 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseS3IoLib/S3IoLib.c | 42 +++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'MdePkg/Library/BaseS3IoLib') diff --git a/MdePkg/Library/BaseS3IoLib/S3IoLib.c b/MdePkg/Library/BaseS3IoLib/S3IoLib.c index 2ff3fff21a..017bcbb9cd 100644 --- a/MdePkg/Library/BaseS3IoLib/S3IoLib.c +++ b/MdePkg/Library/BaseS3IoLib/S3IoLib.c @@ -2,7 +2,7 @@ I/O and MMIO Library Services that do I/O and also enable the I/O operatation to be replayed during an S3 resume. - Copyright (c) 2006, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 -2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions @@ -264,6 +264,7 @@ S3IoBitFieldRead8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -302,6 +303,7 @@ S3IoBitFieldWrite8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -340,6 +342,7 @@ S3IoBitFieldOr8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -379,6 +382,8 @@ S3IoBitFieldAnd8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -614,6 +619,7 @@ S3IoBitFieldRead16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -652,6 +658,7 @@ S3IoBitFieldWrite16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -690,6 +697,7 @@ S3IoBitFieldOr16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -730,6 +738,8 @@ S3IoBitFieldAnd16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -965,6 +975,7 @@ S3IoBitFieldRead32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1003,6 +1014,7 @@ S3IoBitFieldWrite32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1041,6 +1053,7 @@ S3IoBitFieldOr32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1081,6 +1094,8 @@ S3IoBitFieldAnd32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1316,6 +1331,7 @@ S3IoBitFieldRead64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1354,6 +1370,7 @@ S3IoBitFieldWrite64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1392,6 +1409,7 @@ S3IoBitFieldOr64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1432,6 +1450,8 @@ S3IoBitFieldAnd64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Port The I/O port to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1697,6 +1717,7 @@ S3MmioBitFieldRead8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1736,6 +1757,7 @@ S3MmioBitFieldWrite8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1775,6 +1797,7 @@ S3MmioBitFieldOr8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -1815,6 +1838,8 @@ S3MmioBitFieldAnd8 ( If StartBit is greater than 7, then ASSERT(). If EndBit is greater than 7, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2050,6 +2075,7 @@ S3MmioBitFieldRead16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2089,6 +2115,7 @@ S3MmioBitFieldWrite16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2128,6 +2155,7 @@ S3MmioBitFieldOr16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2168,6 +2196,8 @@ S3MmioBitFieldAnd16 ( If StartBit is greater than 15, then ASSERT(). If EndBit is greater than 15, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2402,6 +2432,7 @@ S3MmioBitFieldRead32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2441,6 +2472,7 @@ S3MmioBitFieldWrite32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2480,6 +2512,7 @@ S3MmioBitFieldOr32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2520,6 +2553,8 @@ S3MmioBitFieldAnd32 ( If StartBit is greater than 31, then ASSERT(). If EndBit is greater than 31, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2754,6 +2789,7 @@ S3MmioBitFieldRead64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2793,6 +2829,7 @@ S3MmioBitFieldWrite64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2832,6 +2869,7 @@ S3MmioBitFieldOr64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. @@ -2872,6 +2910,8 @@ S3MmioBitFieldAnd64 ( If StartBit is greater than 63, then ASSERT(). If EndBit is greater than 63, then ASSERT(). If EndBit is less than StartBit, then ASSERT(). + If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). + If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT(). @param Address The MMIO register to write. @param StartBit The ordinal of the least significant bit in the bit field. -- cgit v1.2.3