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