diff options
Diffstat (limited to 'Include/Protocol/AmiUsbCCID.h')
-rw-r--r-- | Include/Protocol/AmiUsbCCID.h | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/Include/Protocol/AmiUsbCCID.h b/Include/Protocol/AmiUsbCCID.h new file mode 100644 index 0000000..dfb81ee --- /dev/null +++ b/Include/Protocol/AmiUsbCCID.h @@ -0,0 +1,185 @@ +//**************************************************************************** +//**************************************************************************** +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Norcross, GA 30093 ** +//** ** +//** Phone (770)-246-8600 ** +//** ** +//**************************************************************************** +//**************************************************************************** + +//**************************************************************************** +// $Header: /Alaska/SOURCE/Modules/USB/ALASKA/Protocol/AmiUsbCCID.h 3 5/02/12 2:02a Rajeshms $ +// +// $Revision: 3 $ +// +// $Date: 5/02/12 2:02a $ +// +//**************************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/USB/ALASKA/Protocol/AmiUsbCCID.h $ +// +// 3 5/02/12 2:02a Rajeshms +// [TAG] EIP83117 +// [Category] Improvement +// [Description] Extend the Support to different smart card Readers and +// smart Cards. +// [Files] usbCCID.c, amiusbrtCCID.h, usbdef.h, efiusbccid.c, +// AmiusbCCID.h +// +// 2 10/14/11 4:58a Rajeshms +// [TAG] EIP70315 +// [Category] Improvement +// [Description] Remove Slot number in the USB CCID API's +// [Files] efiusbccid.c, AmiUsbCCID.h +// +// 1 7/12/11 8:19a Ryanchou +// [TAG] EIP56918 +// [Category] New Feature +// [Description] Added CCID device support. +// [Files] amiusb.c, amiusb.h, amiusbrtCCID.h, ehci.c, ohci.c, uhci.c, +// usb.c, UsbCCID.c, usbdef.h, usbrt.cif, usbsetup.c, efiusbccid.c, +// framework.cif, uhcd.c, uhcd.cif, uhcd.h, usbsrc.sdl, AmiusbCCID.h, +// AmiUsbController.h, AmiUSBProtocols.cif +// +//**************************************************************************** + +//<AMI_FHDR_START> +//----------------------------------------------------------------------------- +// +// Name: AmiUsbCCID.h +// +// Description: AMI USB CCID Protocol definition +// +//----------------------------------------------------------------------------- +//<AMI_FHDR_END> + +#ifndef _USB_CCID_H +#define _USB_CCID_H + +#include <EFI.h> + +#ifndef GUID_VARIABLE_DEFINITION + +// CCID definitions/Structures +typedef struct _AMI_CCID_IO_PROTOCOL AMI_CCID_IO_PROTOCOL; + +#define AMI_CCID_IO_PROTOCOL_GUID \ + { 0xB167C2F5, 0xE26A, 0x4DFF, 0x8E, 0x1C, 0x08, 0x07, 0xC7, 0xF0, 0x2A, 0x88} + +#define AMI_CCID_PRESENCE_GUID \ + { 0x5FDEE00D, 0xDA40, 0x405A, 0xB9, 0x2E, 0xCF, 0x4A, 0x80, 0xEA, 0x8F, 0x76} + +typedef enum { + I_BLOCK, + S_IFS_REQUEST = 0xC1, + S_ABORT_REQUEST, + S_WTX_REQUEST +} ISBlock; + +typedef +EFI_STATUS +(*AMI_CCID_SMARTCLASSDESCRIPTOR) ( + IN AMI_CCID_IO_PROTOCOL *This, + OUT UINT8 *ResponseBuffer +); + +typedef +EFI_STATUS +(*AMI_CCID_GET_ATR) ( + IN AMI_CCID_IO_PROTOCOL *This, + IN UINT8 Slot, + OUT UINT8 *ATRData +); + +typedef +EFI_STATUS +(*AMI_CCID_POWERUP_SLOT) ( + IN AMI_CCID_IO_PROTOCOL *This, + OUT UINT8 *bStatus, + OUT UINT8 *bError, + OUT UINT8 *ATRData +); + +typedef +EFI_STATUS +(*AMI_CCID_POWERDOWN_SLOT) ( + IN AMI_CCID_IO_PROTOCOL *This, + OUT UINT8 *bStatus, + OUT UINT8 *bError +); + +typedef +EFI_STATUS +(*AMI_CCID_GET_SLOT_STATUS) ( + IN AMI_CCID_IO_PROTOCOL *This, + OUT UINT8 *bStatus, + OUT UINT8 *bError, + OUT UINT8 *bClockStatus +); + +typedef +EFI_STATUS +(*AMI_CCID_XFR_BLOCK) ( + IN AMI_CCID_IO_PROTOCOL *This, + IN UINTN CmdLength, + IN UINT8 *CmdBuffer, + IN UINT8 ISBlock, + OUT UINT8 *bStatus, + OUT UINT8 *bError, + IN OUT UINTN *ResponseLength, + OUT UINT8 *ResponseBuffer +); + +typedef +EFI_STATUS +(*AMI_CCID_GET_PARAMETERS) ( + IN AMI_CCID_IO_PROTOCOL *This, + OUT UINT8 *bStatus, + OUT UINT8 *bError, + OUT UINTN *ResponseLength, + OUT UINT8 *ResponseBuffer +); + +typedef struct _AMI_CCID_IO_PROTOCOL { + + AMI_CCID_SMARTCLASSDESCRIPTOR USBCCIDAPISmartClassDescriptor; + AMI_CCID_GET_ATR USBCCIDAPIGetAtr; + AMI_CCID_POWERUP_SLOT USBCCIDAPIPowerupSlot; + AMI_CCID_POWERDOWN_SLOT USBCCIDAPIPowerDownSlot; + AMI_CCID_GET_SLOT_STATUS USBCCIDAPIGetSlotStatus; + AMI_CCID_XFR_BLOCK USBCCIDAPIXfrBlock; + AMI_CCID_GET_PARAMETERS USBCCIDAPIGetParameters; + +}AMI_CCID_IO_PROTOCOL; + +typedef struct { + AMI_CCID_IO_PROTOCOL CCIDIoProtocol; + VOID *DevInfo; + UINT8 Slot; + EFI_HANDLE ControllerHandle; + EFI_HANDLE ChildHandle; + +} USB_ICC_DEV; + +#endif +#endif // _USB_CCID_H + +//**************************************************************************** +//**************************************************************************** +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Norcross, GA 30093 ** +//** ** +//** Phone (770)-246-8600 ** +//** ** +//**************************************************************************** +//**************************************************************************** |