blob: 585f7a1fe12d42fb00ba21955329428a4492d357 [file] [log] [blame]
Christina Quastc0aa7692015-02-25 14:02:01 +01001#ifndef SIMTRACE_H
2#define SIMTRACE_H
Christina Quast32906bb2015-02-24 11:35:19 +01003
Christina Quast4ba4d222015-03-02 16:14:09 +01004/* Endpoint numbers */
5#define DATAOUT 1
6#define DATAIN 2
7#define INT 3
8
9#define BUFLEN 64
10typedef struct ring_buffer
11{
12 uint8_t buf[BUFLEN*2]; // data buffer
13 uint8_t idx; // number of items in the buffer
14} ring_buffer;
15
16
Christina Quast10b2e5a2015-02-25 18:40:15 +010017enum confNum {
Christina Quastdb7b1ab2015-03-03 12:34:36 +010018 CFG_NUM_SNIFF = 1, CFG_NUM_CCID, CFG_NUM_PHONE, CFG_NUM_MITM, NUM_CONF
Christina Quast10b2e5a2015-02-25 18:40:15 +010019};
20
Christina Quastdb7b1ab2015-03-03 12:34:36 +010021/// CCIDDriverConfiguration Descriptors
22/// List of descriptors that make up the configuration descriptors of a
23/// device using the CCID driver.
24typedef struct {
25
26 /// Configuration descriptor
27 USBConfigurationDescriptor configuration;
28 /// Interface descriptor
29 USBInterfaceDescriptor interface;
30 /// CCID descriptor
31 CCIDDescriptor ccid;
32 /// Bulk OUT endpoint descriptor
33 USBEndpointDescriptor bulkOut;
34 /// Bulk IN endpoint descriptor
35 USBEndpointDescriptor bulkIn;
36 /// Interrupt OUT endpoint descriptor
37 USBEndpointDescriptor interruptIn;
38} __attribute__ ((packed)) CCIDDriverConfigurationDescriptors;
39
40/* Helper functions */
41USBConfigurationDescriptor *getConfigDesc(uint8_t idx);
42
Christina Quast32906bb2015-02-24 11:35:19 +010043// FIXME: static function definitions
Christina Quast566d3f92015-02-24 17:38:57 +010044extern uint32_t _ISO7816_GetChar( uint8_t *pCharToReceive );
45extern uint32_t _ISO7816_SendChar( uint8_t CharToSend );
Christina Quast27c643d2015-02-24 19:09:08 +010046
Christina Quast1edf3502015-02-27 13:33:52 +010047/* Init functions */
48extern void Phone_Master_Init( void );
Christina Quastdb7b1ab2015-03-03 12:34:36 +010049extern void CCID_init( void );
Christina Quast27c643d2015-02-24 19:09:08 +010050extern void Sniffer_Init( void );
Christina Quast1edf3502015-02-27 13:33:52 +010051extern void MITM_init( void );
Christina Quast27c643d2015-02-24 19:09:08 +010052
Christina Quastc0aa7692015-02-25 14:02:01 +010053extern void SIMtrace_USB_Initialize( void );
Christina Quastc0aa7692015-02-25 14:02:01 +010054extern void _ISO7816_Init( void );
55
Christina Quast1edf3502015-02-27 13:33:52 +010056/* Run functions */
57extern void Sniffer_run( void );
Christina Quastdb7b1ab2015-03-03 12:34:36 +010058extern void CCID_run( void );
Christina Quast1edf3502015-02-27 13:33:52 +010059extern void Phone_run( void );
60extern void MITM_run( void );
61
62#endif /* SIMTRACE_H */