Rudiments
/home/dmuse/src/rudiments/include/rudiments/memorymap.h
00001 // Copyright (c) 2004 David Muse
00002 // See the COPYING file for more information.
00003 
00004 #ifndef RUDIMENTS_MEMORYMAP_H
00005 #define RUDIMENTS_MEMORYMAP_H
00006 
00007 #include <rudiments/private/memorymapincludes.h>
00008 
00009 #ifdef RUDIMENTS_NAMESPACE
00010 namespace rudiments {
00011 #endif
00012 
00013 class memorymapprivate;
00014 
00017 class RUDIMENTS_DLLSPEC memorymap {
00018         public:
00019                 
00021                 memorymap();
00022 
00025                 ~memorymap();
00026 
00062                 bool    attach(int32_t fd, off64_t offset, size_t len,
00063                                         int32_t protection, int32_t flags);
00064 
00068                 bool    detach();
00069 
00072                 bool    setProtection(int32_t protection);
00073 
00090                 bool    setProtection(off64_t offset, size_t len,
00091                                                         int32_t protection);
00092 
00095                 void    *getData();
00096 
00099                 size_t  getLength();
00100 
00114                 bool    sync(bool immediate, bool invalidate);
00115 
00130                 bool    sync(off64_t offset, size_t len,
00131                                 bool immediate, bool invalidate);
00132 
00133 
00143                 bool    sequentialAccess(off64_t offset, size_t len);
00144 
00154                 bool    randomAccess(off64_t offset, size_t len);
00155 
00165                 bool    willNeed(off64_t offset, size_t len);
00166 
00176                 bool    wontNeed(off64_t offset, size_t len);
00177 
00187                 bool    normalAccess(off64_t offset, size_t len);
00188 
00194                 bool    lock();
00195 
00202                 bool    lock(off64_t offset, size_t len);
00203 
00209                 bool    unlock();
00210 
00217                 bool    unlock(off64_t offset, size_t len);
00218 
00226                 bool    inMemory();
00227 
00236                 bool    inMemory(off64_t offset, size_t len);
00237 
00238 
00247                 static bool     lockAll();
00248 
00257                 static bool     lockAllCurrent();
00258 
00267                 static bool     lockAllFuture();
00268 
00275                 static bool     unlockAll();
00276 
00277         #include <rudiments/private/memorymap.h>
00278 };
00279 
00280 #ifdef RUDIMENTS_NAMESPACE
00281 }
00282 #endif
00283 
00284 #endif