Overview   API Reference  

uart.hpp

00001 #if !defined(__UART_HPP__)
00002 #define __UART_HPP__
00003 
00004 //
00005 // local includes
00006 //
00007 #include "core/drivers/serial/serial_driver.hpp"
00008 #include "uart_registers.hpp"
00009 
00015 struct uart : public device_base, protected uart_registers
00016 {
00017   protected:
00018     l4_port_t iobase;
00019     serial_driver *driver;
00020 
00021   public:
00022     uart(machine_base &machine, l4_port_t iobase, l4_irq_t irq, serial_driver *driver);
00023     virtual ~uart(void);
00024 
00025     //
00026     // iospace_handler: override I/O space access handlers
00027     //
00028     virtual uint32_t read_ioport(l4_port_t port, access_size access_size);
00029     virtual int write_ioport(l4_port_t port, uint32_t data, access_size access_size);
00030 
00031     //
00032     // device: override reset
00033     //
00034     virtual int reset(void);
00035 
00036   private:
00037     void assert_irq_id(interrupt_ids id);
00038     void clear_irq_id(void);
00039 
00040   public:
00041     static device *create(machine_base &machine, config_node &device_node);
00042 };
00043 
00044 #endif
00045 
00046 // ***** end of source ***** //
00047 

L4vmm Reference Manual, written by Mario Schwalbe  © 2006-2008