Move buffer handling in chip-specific driver.
[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.5  2004/09/06 21:40:50  bernie
19  *#* Move buffer handling in chip-specific driver.
20  *#*
21  *#* Revision 1.4  2004/08/25 14:12:08  rasky
22  *#* Aggiornato il comment block dei log RCS
23  *#*
24  *#* Revision 1.3  2004/06/03 11:27:09  bernie
25  *#* Add dual-license information.
26  *#*
27  *#* Revision 1.2  2004/05/23 18:21:53  bernie
28  *#* Trim CVS logs and cleanup header info.
29  *#*
30  *#*/
31
32 #ifndef DRV_SER_P_H
33 #define DRV_SER_P_H
34
35 struct SerialHardware;
36 struct Serial;
37
38 struct SerialHardwareVT
39 {
40         void (*init)(struct SerialHardware* ctx, struct Serial* ser);
41         void (*cleanup)(struct SerialHardware* ctx);
42         void (*setbaudrate)(struct SerialHardware* ctx, unsigned long rate);
43         void (*setparity)(struct SerialHardware* ctx, int parity);
44         void (*enabletxirq)(struct SerialHardware* ctx);
45 };
46
47 struct SerialHardware
48 {
49         const struct SerialHardwareVT* table;
50         unsigned char *txbuffer;
51         unsigned char *rxbuffer;
52         size_t         txbuffer_size;
53         size_t         rxbuffer_size;
54 };
55
56 struct SerialHardware* ser_hw_getdesc(int unit);
57
58 #endif /* DRV_SER_P_H */