1 #pragma once 2 3 #include <systypes/base.h> 4 5 #include "page_mapper.h" 6 #include "resource.h" 7 8 9 10 /* A pager exposing a dataspace. */ 11 12 class Pager : public Resource 13 { 14 protected: 15 offset_t _start, _size; 16 PageMapper *_mapper; 17 18 public: 19 explicit Pager(PageMapper *mapper); 20 21 virtual void close(); 22 23 /* Paging methods. */ 24 25 virtual 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 /* Mapped file methods. */ 32 33 virtual long mmap(offset_t position, offset_t length, offset_t *start_pos, offset_t *end_pos, offset_t *data_end); 34 }; 35 36 // vim: tabstop=4 expandtab shiftwidth=4