/** @file
USB keyboard library header file.
Copyright (c) 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __USB_KB_LIB_INTERNAL_H__
#define __USB_KB_LIB_INTERNAL_H__
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define USB_KB_DEVICE_SIG SIGNATURE_32 ('U', 'S', 'K', 'B')
#define QUEUE_MAX_COUNT 32
typedef struct {
UINTN Front;
UINTN Rear;
CHAR8 Buffer[QUEUE_MAX_COUNT];
} SIMPLE_QUEUE;
typedef struct {
UINT8 NumLock : 1;
UINT8 CapsLock : 1;
UINT8 ScrollLock : 1;
UINT8 Resrvd : 5;
} LED_MAP;
typedef struct {
UINT32 Signature;
PEI_USB_IO_PPI *UsbIo;
EFI_USB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
EFI_USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
BOOLEAN NumLockOn;
BOOLEAN CapsOn;
BOOLEAN ScrollOn;
SIMPLE_QUEUE Queue;
UINT8 KeyRepeat;
CHAR8 LastChar;
} USB_KB_DEV;
#endif