#ifndef __CCID_USB_H__
#define __CCID_USB_H__
status_t OpenUSB(unsigned int reader_index, int channel);
status_t OpenUSBByName(unsigned int reader_index, char *device);
status_t WriteUSB(unsigned int reader_index, unsigned int length,
unsigned char *Buffer);
status_t ReadUSB(unsigned int reader_index, unsigned int *length,
unsigned char *Buffer);
status_t CloseUSB(unsigned int reader_index);
#include <libusb.h>
const struct libusb_interface *get_ccid_usb_interface(
struct libusb_config_descriptor *desc, int *num);
const unsigned char *get_ccid_device_descriptor(const struct libusb_interface *usb_interface);
uint8_t get_ccid_usb_bus_number(int reader_index);
uint8_t get_ccid_usb_device_address(int reader_index);
int ControlUSB(int reader_index, int requesttype, int request, int value,
unsigned char *bytes, unsigned int size);
int InterruptRead(int reader_index, int timeout);
void InterruptStop(int reader_index);
#endif