1 #pragma once 2 3 #include "dataspace_interface.h" 4 #include "page_mapper.h" 5 #include "pager_state.h" 6 #include "resource.h" 7 8 9 10 /* A pager exposing a dataspace. */ 11 12 class Pager : public Dataspace, public Resource 13 { 14 protected: 15 offset_t _start, _size; 16 PageMapper *_mapper; 17 18 public: 19 explicit Pager(PageMapper *mapper); 20 21 void close(); 22 23 /* Paging methods. */ 24 25 long map(unsigned long offset, l4_addr_t hot_spot, unsigned long flags, l4_snd_fpage_t *region); 26 27 /* Limit methods. */ 28 29 offset_t get_data_size(); 30 31 PagerState mmap(offset_t start, offset_t size); 32 }; 33 34 // vim: tabstop=4 expandtab shiftwidth=4