/** @file Copyright (c) 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php. THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef _PLATFORM_TYPES_H_ #define _PLATFORM_TYPES_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define EFI_PLATFORM_TYPE_DRIVER_PRIVATE_SIGNATURE SIGNATURE_32 ('T', 'Y', 'P', 'P') #define EFI_IIO_UDS_DRIVER_PRIVATE_SIGNATURE SIGNATURE_32 ('S', 'D', 'U', 'I') typedef unsigned char BYTE; //!< 8-bit quantities typedef unsigned short WORD; //!< 16-bit quantities typedef unsigned long DWORD; //!< 32-bit quantities typedef enum { #ifndef SUCCESS SUCCESS = 0x00, //!< Packet it good! .data[] is valid #endif DEFER = 0x01, //!< Packet is defered. .data[1] = BufID W_EARLY_NACK = 0x02, //!< Packet mastered on the SMBus by the MCU was NACKed earlier than expected NOT_RESP = 0x03, //!< Packet mastered on the SMBus by the MCU was NACKed during the address byte BUFFER_OVERRUN = 0x04, //!< Too many BYTE s were stuffed into the buffer. NO_BUFFER = 0x05, //!< All the buffers are used INVALID_BUF = 0x06, //!< Command passed a buffer id that was not in range BUF_NOT_IN_QUEUE = 0x07, //!< Command passed a buffer id is not being used. ARBITRATION_LOST = 0x08, //!< While the MCU was mastering a packet on the SMBus it lost arbitration. TIMEOUT = 0x0B, //!< SMBus timed out. CHECKSUM_ERR = 0x0C, //!< Operation encountered a checksum mismatch DATA_NACK = 0x0D, //!< Still don't know what these mean? BUS_ERR = 0x0E, //!< ? FAIL = 0x0F, //!< Generic error BUSY = 0x10, //!< ? R_EARLY_NACK = 0x11, //!< ? INVALID_LCD_COL_OFF = 0x12, //!< The cursor on the LCD was set to a column that was out of range. INVALID_LCD_ROW_OFF = 0x13, //!< The cursor on the LCD was set to a row that was out of range. INVALID_CK410_SEL = 0x14, //!< ? CMD_NOT_SUPPORTED = 0x15, //!< This command is not supported MORE_DATA_AVAILABLE = 0x16, //!< Do the command again to get more data } STATUS; typedef struct { BYTE byte_count; STATUS status; BYTE data[31]; } BUFFER_RSLT; typedef struct { UINTN Signature; EFI_HANDLE Handle; // Handle for protocol this driver installs on EFI_IIO_UDS_PROTOCOL IioUds; // Policy protocol this driver installs } EFI_IIO_UDS_DRIVER_PRIVATE; #endif