Qt timer emulation.
[bertos.git] / drv / ser_p.h
1 /*!
2  * \file
3  * <!--
4  * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
5  * This file is part of DevLib - See README.devlib for information.
6  * -->
7  *
8  * \brief Hardware dependent serial driver (interface)
9  *
10  * \version $Id$
11  *
12  * \author Stefano Fedrigo <aleph@develer.com>
13  * \author Giovanni Bajo <rasky@develer.com>
14  */
15
16 /*#*
17  *#* $Log$
18  *#* Revision 1.8  2005/11/04 16:20:02  bernie
19  *#* Fix reference to README.devlib in header.
20  *#*
21  *#* Revision 1.7  2005/01/14 00:47:56  aleph
22  *#* Rename callbacks; SerialHardwareVT.txSending: New callback.
23  *#*
24  *#* Revision 1.6  2004/12/08 08:56:58  bernie
25  *#* Reformat.
26  *#*
27  *#* Revision 1.5  2004/09/06 21:40:50  bernie
28  *#* Move buffer handling in chip-specific driver.
29  *#*
30  *#* Revision 1.4  2004/08/25 14:12:08  rasky
31  *#* Aggiornato il comment block dei log RCS
32  *#*
33  *#* Revision 1.3  2004/06/03 11:27:09  bernie
34  *#* Add dual-license information.
35  *#*
36  *#* Revision 1.2  2004/05/23 18:21:53  bernie
37  *#* Trim CVS logs and cleanup header info.
38  *#*
39  *#*/
40
41 #ifndef DRV_SER_P_H
42 #define DRV_SER_P_H
43
44 struct SerialHardware;
45 struct Serial;
46
47 struct SerialHardwareVT
48 {
49         void (*init)(struct SerialHardware *ctx, struct Serial *ser);
50         void (*cleanup)(struct SerialHardware *ctx);
51         void (*setBaudrate)(struct SerialHardware *ctx, unsigned long rate);
52         void (*setParity)(struct SerialHardware *ctx, int parity);
53         void (*txStart)(struct SerialHardware *ctx);
54         bool (*txSending)(struct SerialHardware *ctx);
55 };
56
57 struct SerialHardware
58 {
59         const struct SerialHardwareVT *table;
60         unsigned char *txbuffer;
61         unsigned char *rxbuffer;
62         size_t         txbuffer_size;
63         size_t         rxbuffer_size;
64 };
65
66 struct SerialHardware *ser_hw_getdesc(int unit);
67
68 #endif /* DRV_SER_P_H */