5 #include "manes/device.h"
7 #include "arch/x86/rs232.h"
10 class rs232
: public manes::stream
{
12 typedef arch::parity_check parity_check
;
13 typedef arch::rs232_mode rs232_mode
;
15 virtual void read_bytes(char *data
, int count
) = 0;
16 virtual void write_bytes(const char *data
, int count
) = 0;
17 virtual void write_dwords(const int *, int) = 0;
19 virtual void received(const char a
) = 0;
21 virtual resource_result
*configure(rs232_mode mode
, int speed
, int bits
,
22 parity_check parity
, int stop
) = 0;
24 virtual bool init_device(isa_address iadr
) = 0;
26 virtual void set_ondatareceived(delegate
<void>) = 0;
30 class rs232_impl
: public rs232
{
32 /* some kind of buffer here */
35 typedef rs232::parity_check parity_check
;
36 typedef rs232::rs232_mode rs232_mode
;
38 void read_bytes(char *data
, int count
);
39 void write_bytes(const char *data
, int count
);
40 void write_dwords(const int *, int);
42 void received(const char a
);
44 resource_result
*configure(rs232_mode mode
, int speed
, int bits
,
45 parity_check parity
, int stop
);
47 bool init_device(isa_address iadr
);
49 void set_ondatareceived(delegate
<void>);