1/*
2    ccid_usb.h:  USB access routines using the libusb library
3    Copyright (C) 2003-2004   Ludovic Rousseau
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15	You should have received a copy of the GNU Lesser General Public License
16	along with this library; if not, write to the Free Software Foundation,
17	Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20/*
21 * $Id: ccid_usb.h 4346 2009-07-28 13:39:37Z rousseau $
22 */
23
24#ifndef __CCID_USB_H__
25#define __CCID_USB_H__
26status_t OpenUSB(unsigned int reader_index, int channel);
27
28status_t OpenUSBByName(unsigned int reader_index, /*@null@*/ char *device);
29
30status_t WriteUSB(unsigned int reader_index, unsigned int length,
31	unsigned char *Buffer);
32
33status_t ReadUSB(unsigned int reader_index, unsigned int *length,
34	/*@out@*/ unsigned char *Buffer);
35
36status_t CloseUSB(unsigned int reader_index);
37
38#if defined (__USB_H__) || defined (_SYS_USB_LIBUSB_USB_H)
39/*@null@*/ struct usb_interface *get_ccid_usb_interface(
40	struct usb_device *dev, int *num);
41#endif
42
43int ControlUSB(int reader_index, int requesttype, int request, int value,
44	unsigned char *bytes, unsigned int size);
45
46int InterruptRead(int reader_index, int timeout);
47#endif
48