/** @file Header file for the ChaosKey hardware random number generator. Copyright (c) 2016 - 2017, Linaro Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _CHAOSKEY_USB_HWRNG_DRIVER_H_ #define _CHAOSKEY_USB_HWRNG_DRIVER_H_ #include #include #include #include #include #include #define CHAOSKEY_VENDOR_ID 0x1d50 /* OpenMoko */ #define CHAOSKEY_PRODUCT_ID 0x60c6 /* ChaosKey */ #define CHAOSKEY_TIMEOUT 10 // ms #define CHAOSKEY_MAX_EP_SIZE 64 // max EP size for full-speed devices #define CHAOSKEY_DEV_SIGNATURE SIGNATURE_32('c','h','k','e') typedef struct { UINT32 Signature; UINT16 EndpointAddress; UINT16 EndpointSize; EFI_USB_IO_PROTOCOL *UsbIo; EFI_RNG_PROTOCOL Rng; } CHAOSKEY_DEV; #define CHAOSKEY_DEV_FROM_THIS(a) \ CR(a, CHAOSKEY_DEV, Rng, CHAOSKEY_DEV_SIGNATURE) extern EFI_COMPONENT_NAME2_PROTOCOL gChaosKeyDriverComponentName2; EFI_STATUS ChaosKeyInit ( IN EFI_HANDLE DriverBindingHandle, IN EFI_HANDLE ControllerHandle ); EFI_STATUS ChaosKeyRelease ( IN EFI_HANDLE DriverBindingHandle, IN EFI_HANDLE ControllerHandle ); #endif // _CHAOSKEY_USB_HWRNG_DRIVER_H_