mmio_handler.hpp
00001 #if !defined(__MMIO_HANDLER_HPP__)
00002 #define __MMIO_HANDLER_HPP__
00003
00004
00005
00006
00007 #include "core/common.hpp"
00008
00014 struct mmio_handler
00015 {
00019 static const l4_umword_t INVALID = ~0ul;
00020
00024 virtual inline ~mmio_handler(void)
00025 {}
00026
00032 virtual l4_umword_t read_mmio(l4_gpa_t address, access_size access_size) = 0;
00033
00038 virtual int write_mmio(l4_gpa_t address, l4_umword_t data, access_size access_size) = 0;
00039
00044 virtual l4_hva_t map_mmio_region(int flags, l4_gpa_t base, l4_gpa_t size=1) = 0;
00045
00050 virtual int unmap_mmio_region(l4_gpa_t base, l4_gpa_t size=1) = 0;
00051 };
00052
00053 #endif
00054
00055
00056