Rudiments
memorymap.h
1 // Copyright (c) 2004 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_MEMORYMAP_H
5 #define RUDIMENTS_MEMORYMAP_H
6 
7 #include <rudiments/private/memorymapincludes.h>
8 
9 #ifdef RUDIMENTS_NAMESPACE
10 namespace rudiments {
11 #endif
12 
13 class memorymapprivate;
14 
17 class RUDIMENTS_DLLSPEC memorymap {
18  public:
19 
21  memorymap();
22 
25  ~memorymap();
26 
62  bool attach(int32_t fd, off64_t offset, size_t len,
63  int32_t protection, int32_t flags);
64 
68  bool detach();
69 
72  bool setProtection(int32_t protection);
73 
90  bool setProtection(off64_t offset, size_t len,
91  int32_t protection);
92 
95  void *getData();
96 
99  size_t getLength();
100 
114  bool sync(bool immediate, bool invalidate);
115 
130  bool sync(off64_t offset, size_t len,
131  bool immediate, bool invalidate);
132 
133 
143  bool sequentialAccess(off64_t offset, size_t len);
144 
154  bool randomAccess(off64_t offset, size_t len);
155 
165  bool willNeed(off64_t offset, size_t len);
166 
176  bool wontNeed(off64_t offset, size_t len);
177 
187  bool normalAccess(off64_t offset, size_t len);
188 
194  bool lock();
195 
202  bool lock(off64_t offset, size_t len);
203 
209  bool unlock();
210 
217  bool unlock(off64_t offset, size_t len);
218 
226  bool inMemory();
227 
236  bool inMemory(off64_t offset, size_t len);
237 
238 
247  static bool lockAll();
248 
257  static bool lockAllCurrent();
258 
267  static bool lockAllFuture();
268 
275  static bool unlockAll();
276 
277  #include <rudiments/private/memorymap.h>
278 };
279 
280 #ifdef RUDIMENTS_NAMESPACE
281 }
282 #endif
283 
284 #endif