1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 PostCode.c 15 16 Abstract: 17 18 Worker functions for PostCode 19 20 --*/ 21 22 #include "TianoCommon.h" 23 #include "EfiCommonLib.h" 24 25 BOOLEAN CodeTypeToPostCode(IN EFI_STATUS_CODE_TYPE CodeType,IN EFI_STATUS_CODE_VALUE Value,OUT UINT8 * PostCode)26CodeTypeToPostCode ( 27 IN EFI_STATUS_CODE_TYPE CodeType, 28 IN EFI_STATUS_CODE_VALUE Value, 29 OUT UINT8 *PostCode 30 ) 31 /*++ 32 33 Routine Description: 34 35 Convert code value to an 8 bit post code 36 37 Arguments: 38 39 CodeType - Code type 40 Value - Code value 41 PostCode - Post code as output 42 43 Returns: 44 45 TRUE - Successfully converted 46 47 FALSE - Convertion failed 48 49 --*/ 50 { 51 // 52 // Convert Value to an 8 bit post code 53 // 54 if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) || 55 ((CodeType & EFI_STATUS_CODE_TYPE_MASK)== EFI_ERROR_CODE)) { 56 *PostCode = (UINT8) (((Value & EFI_STATUS_CODE_CLASS_MASK) >> 24) << 5); 57 *PostCode = (UINT8)(*PostCode | (((Value & EFI_STATUS_CODE_SUBCLASS_MASK) >> 16) & 0x1f)); 58 return TRUE; 59 } 60 61 return FALSE; 62 } 63