source: trunk/csctapi/io_serial.h@ 1224

Last change on this file since 1224 was 1224, checked in by dingo35, 12 years ago

Move phoenix/smartmouse transmit and receive to ifd_phoenix.c

File size: 3.4 KB
Line 
1/*
2 io_serial.h
3 Serial port input/output definitions
4
5 This file is part of the Unix driver for Towitoko smartcard readers
6 Copyright (C) 2000 Carlos Prados <cprados@yahoo.com>
7
8 This version is modified by doz21 to work in a special manner ;)
9
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2 of the License, or (at your option) any later version.
14
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public
21 License along with this library; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23*/
24
25#ifndef _IO_SERIAL_
26#define _IO_SERIAL_
27
28#include "defines.h"
29
30#define IO_Serial_DTR_Set(io) IO_Serial_DTR_RTS(io, 1, 1)
31#define IO_Serial_DTR_Clr(io) IO_Serial_DTR_RTS(io, 1, 0)
32#define IO_Serial_RTS_Set(io) IO_Serial_DTR_RTS(io, 0, 1)
33#define IO_Serial_RTS_Clr(io) IO_Serial_DTR_RTS(io, 0, 0)
34/*
35 * Exported constants definition
36 */
37
38/* Type of parity of the serial device */
39#define IO_SERIAL_PARITY_ODD 1
40#define IO_SERIAL_PARITY_EVEN 2
41#define IO_SERIAL_PARITY_NONE 3
42
43/* Values for the modem lines */
44#define IO_SERIAL_HIGH 1
45#define IO_SERIAL_LOW 0
46
47/* Maximum size of PnP Com ID */
48#define IO_SERIAL_PNPID_SIZE 256
49
50/*
51 * Exported datatypes definition
52 */
53
54/* IO_Serial exported datatype */
55typedef struct
56{
57 int fd; /* Handle of the serial device */
58 /* Settings that can be modified */
59 unsigned long input_bitrate;
60 unsigned long output_bitrate;
61 unsigned bits;
62 unsigned stopbits;
63 int parity;
64 int dtr;
65 int rts;
66 /* end settings that can be modified */
67 int reader_type;
68 BYTE PnP_id[IO_SERIAL_PNPID_SIZE]; /* PnP Id of the serial device */
69 unsigned PnP_id_size; /* Length of PnP Id */
70 int mhz; /* mhz specified in config = actual reader clock speed */
71 int cardmhz; /* mhz specified in config = standard (non overclocked) clock speed of card*/
72}
73IO_Serial;
74
75int wr; //FIXME should be in ifd_phoenix.c or .h
76
77/*
78 * Exported functions declaration
79 */
80
81/* IO_Serial creation and deletion */
82//extern void IO_Serial_Reopen (IO_Serial * io);
83extern void IO_Serial_Flush ();
84extern IO_Serial *IO_Serial_New (int mhz, int cardmhz);
85extern void IO_Serial_Delete (IO_Serial * io);
86
87/* Initialization and closing */
88extern bool IO_Serial_Init (IO_Serial * io, int reader_type);
89extern bool IO_Serial_Close (IO_Serial * io);
90
91/* Transmission properties */
92extern bool IO_Serial_SetProperties (IO_Serial * io);
93extern bool IO_Serial_GetProperties (IO_Serial * io);
94extern bool IO_Serial_DTR_RTS(IO_Serial * io, int, int);
95#if defined(TUXBOX) && defined(PPC)
96extern void IO_Serial_Ioctl_Lock(int);
97#else
98#define IO_Serial_Ioctl_Lock(b) {} //FIXME ugly !!
99#endif
100
101/* Input and output */
102extern bool IO_Serial_Read (unsigned timeout, unsigned size, BYTE * data);
103extern bool IO_Serial_Write (unsigned delay, unsigned size, BYTE * data);
104
105/* Serial port atributes */
106extern unsigned IO_Serial_GetCom (IO_Serial * io);
107extern void IO_Serial_GetPnPId (IO_Serial * io, BYTE * pnp_id, unsigned *length);
108
109#endif /* IO_SERIAL */
Note: See TracBrowser for help on using the repository browser.