Tweaks for avr-libc 1.2.x.
[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 devlib/README 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.7  2005/01/14 00:47:56  aleph
19  *#* Rename callbacks; SerialHardwareVT.txSending: New callback.
20  *#*
21  *#* Revision 1.6  2004/12/08 08:56:58  bernie
22  *#* Reformat.
23  *#*
24  *#* Revision 1.5  2004/09/06 21:40:50  bernie
25  *#* Move buffer handling in chip-specific driver.
26  *#*
27  *#* Revision 1.4  2004/08/25 14:12:08  rasky
28  *#* Aggiornato il comment block dei log RCS
29  *#*
30  *#* Revision 1.3  2004/06/03 11:27:09  bernie
31  *#* Add dual-license information.
32  *#*
33  *#* Revision 1.2  2004/05/23 18:21:53  bernie
34  *#* Trim CVS logs and cleanup header info.
35  *#*
36  *#*/
37
38 #ifndef DRV_SER_P_H
39 #define DRV_SER_P_H
40
41 struct SerialHardware;
42 struct Serial;
43
44 struct SerialHardwareVT
45 {
46         void (*init)(struct SerialHardware *ctx, struct Serial *ser);
47         void (*cleanup)(struct SerialHardware *ctx);
48         void (*setBaudrate)(struct SerialHardware *ctx, unsigned long rate);
49         void (*setParity)(struct SerialHardware *ctx, int parity);
50         void (*txStart)(struct SerialHardware *ctx);
51         bool (*txSending)(struct SerialHardware *ctx);
52 };
53
54 struct SerialHardware
55 {
56         const struct SerialHardwareVT *table;
57         unsigned char *txbuffer;
58         unsigned char *rxbuffer;
59         size_t         txbuffer_size;
60         size_t         rxbuffer_size;
61 };
62
63 struct SerialHardware *ser_hw_getdesc(int unit);
64
65 #endif /* DRV_SER_P_H */