| /** @file | |
| Provides services to send progress/error codes to a POST card. | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __POST_CODE_LIB_H__ | |
| #define __POST_CODE_LIB_H__ | |
| #define POST_CODE_PROPERTY_POST_CODE_ENABLED 0x00000008 | |
| #define POST_CODE_PROPERTY_POST_CODE_DESCRIPTION_ENABLED 0x00000010 | |
| /** | |
| Sends a 32-bit value to a POST card. | |
| Sends the 32-bit value specified by Value to a POST card, and returns Value. | |
| Some implementations of this library function may perform I/O operations | |
| directly to a POST card device. Other implementations may send Value to | |
| ReportStatusCode(), and the status code reporting mechanism will eventually | |
| display the 32-bit value on the status reporting device. | |
| PostCode() must actively prevent recursion. If PostCode() is called while | |
| processing another Post Code Library function, then | |
| PostCode() must return Value immediately. | |
| @param Value The 32-bit value to write to the POST card. | |
| @return The 32-bit value to write to the POST card. | |
| **/ | |
| UINT32 | |
| EFIAPI | |
| PostCode ( | |
| IN UINT32 Value | |
| ); | |
| /** | |
| Sends a 32-bit value to a POST and associated ASCII string. | |
| Sends the 32-bit value specified by Value to a POST card, and returns Value. | |
| If Description is not NULL, then the ASCII string specified by Description is | |
| also passed to the handler that displays the POST card value. Some | |
| implementations of this library function may perform I/O operations directly | |
| to a POST card device. Other implementations may send Value to ReportStatusCode(), | |
| and the status code reporting mechanism will eventually display the 32-bit | |
| value on the status reporting device. | |
| PostCodeWithDescription()must actively prevent recursion. If | |
| PostCodeWithDescription() is called while processing another any other Post | |
| Code Library function, then PostCodeWithDescription() must return Value | |
| immediately. | |
| @param Value The 32-bit value to write to the POST card. | |
| @param Description Pointer to an ASCII string that is a description of the | |
| POST code value. This is an optional parameter that may | |
| be NULL. | |
| @return The 32-bit value to write to the POST card. | |
| **/ | |
| UINT32 | |
| EFIAPI | |
| PostCodeWithDescription ( | |
| IN UINT32 Value, | |
| IN CONST CHAR8 *Description OPTIONAL | |
| ); | |
| /** | |
| Returns TRUE if POST Codes are enabled. | |
| This function returns TRUE if the POST_CODE_PROPERTY_POST_CODE_ENABLED | |
| bit of PcdPostCodePropertyMask is set. Otherwise FALSE is returned. | |
| @retval TRUE The POST_CODE_PROPERTY_POST_CODE_ENABLED bit of | |
| PcdPostCodeProperyMask is set. | |
| @retval FALSE The POST_CODE_PROPERTY_POST_CODE_ENABLED bit of | |
| PcdPostCodeProperyMask is clear. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| PostCodeEnabled ( | |
| VOID | |
| ); | |
| /** | |
| Returns TRUE if POST code descriptions are enabled. | |
| This function returns TRUE if the POST_CODE_PROPERTY_POST_CODE_DESCRIPTION_ENABLED | |
| bit of PcdPostCodePropertyMask is set. Otherwise FALSE is returned. | |
| @retval TRUE The POST_CODE_PROPERTY_POST_CODE_DESCRIPTION_ENABLED bit of | |
| PcdPostCodeProperyMask is set. | |
| @retval FALSE The POST_CODE_PROPERTY_POST_CODE_DESCRIPTION_ENABLED bit of | |
| PcdPostCodeProperyMask is clear. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| PostCodeDescriptionEnabled ( | |
| VOID | |
| ); | |
| /** | |
| Sends a 32-bit value to a POST card. | |
| If POST codes are enabled in PcdPostCodeProperyMask, then call PostCode() | |
| passing in Value. Value is returned. | |
| @param Value The 32-bit value to write to the POST card. | |
| @return Value The 32-bit value to write to the POST card. | |
| **/ | |
| #define POST_CODE(Value) PostCodeEnabled() ? PostCode(Value) : Value | |
| /** | |
| Sends a 32-bit value to a POST and associated ASCII string. | |
| If POST codes and POST code descriptions are enabled in | |
| PcdPostCodeProperyMask, then call PostCodeWithDescription() passing in | |
| Value and Description. If only POST codes are enabled, then call PostCode() | |
| passing in Value. Value is returned. | |
| @param Value The 32-bit value to write to the POST card. | |
| @param Description Pointer to an ASCII string that is a description of the | |
| POST code value. | |
| @return Value The 32-bit value to write to the POST card. | |
| **/ | |
| #define POST_CODE_WITH_DESCRIPTION(Value, Description) \ | |
| PostCodeEnabled() ? \ | |
| (PostCodeDescriptionEnabled() ? \ | |
| PostCodeWithDescription(Value,Description) : \ | |
| PostCode(Value)) : \ | |
| Value | |
| #endif |