X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FMemoryMapping.h;h=280a261fd6407c14d596dd419f57310e5951f694;hb=398f83735ae9c087774af4894a794510a1e375c0;hp=51b5e8904824e0daa1838130314357ce86e99b82;hpb=7fda1f29212ba8402e8b43c08e1c66dd1e8e7c95;p=folly.git diff --git a/folly/MemoryMapping.h b/folly/MemoryMapping.h index 51b5e890..280a261f 100644 --- a/folly/MemoryMapping.h +++ b/folly/MemoryMapping.h @@ -1,5 +1,5 @@ /* - * Copyright 2014 Facebook, Inc. + * Copyright 2015 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,9 @@ #ifndef FOLLY_MEMORYMAPPING_H_ #define FOLLY_MEMORYMAPPING_H_ -#include "folly/FBString.h" -#include "folly/File.h" -#include "folly/Range.h" +#include +#include +#include #include #include @@ -53,7 +53,7 @@ class MemoryMapping : boost::noncopyable { * likely become inaccessible) when the MemoryMapping object is destroyed. */ struct Options { - Options() { } + Options() {} // Convenience methods; return *this for chaining. Options& setPageSize(off_t v) { pageSize = v; return *this; } @@ -70,8 +70,8 @@ class MemoryMapping : boost::noncopyable { // If shared (default), the memory mapping is shared with other processes // mapping the same file (or children); if not shared (private), each - // process has its own mapping; if the mapping is writable, the changes - // are not reflected to the underlying file. See the discussion of + // process has its own mapping. Changes in writable, private mappings are + // not reflected to the underlying file. See the discussion of // MAP_PRIVATE vs MAP_SHARED in the mmap(2) manual page. bool shared = true; @@ -127,13 +127,13 @@ class MemoryMapping : boost::noncopyable { off_t length=-1, Options options=Options()); - MemoryMapping(MemoryMapping&&); + MemoryMapping(MemoryMapping&&) noexcept; ~MemoryMapping(); MemoryMapping& operator=(MemoryMapping); - void swap(MemoryMapping& other); + void swap(MemoryMapping& other) noexcept; /** * Lock the pages in memory @@ -157,6 +157,7 @@ class MemoryMapping : boost::noncopyable { * Advise the kernel about memory access. */ void advise(int advice) const; + void advise(int advice, size_t offset, size_t length) const; /** * A bitwise cast of the mapped bytes as range of values. Only intended for @@ -229,7 +230,7 @@ class MemoryMapping : boost::noncopyable { MutableByteRange data_; }; -void swap(MemoryMapping&, MemoryMapping&); +void swap(MemoryMapping&, MemoryMapping&) noexcept; /** * A special case of memcpy() that always copies memory forwards.