/** @file Header file for the ChaosKey hardware random number generator. Copyright (c) 2016 - 2017, Linaro Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which 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 _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_