18 #ifndef FOEDUS_ASSORTED_PROTECTED_BOUNDARY_HPP_
19 #define FOEDUS_ASSORTED_PROTECTED_BOUNDARY_HPP_
88 void reset(
const std::string& boundary_name) {
90 boundary_name.copy(boundary_name_, copy_len, 0);
105 ASSERT_ND(data_[i] == kProtectedBoundaryMagicWord);
112 if (boundary_name_[len] == 0) {
117 return std::string(boundary_name_, len);
124 #endif // FOEDUS_ASSORTED_PROTECTED_BOUNDARY_HPP_
std::string get_boundary_name() const
A 4kb dummy data placed between separate memory regions so that we can check if/where a bogus memory ...
void reset(const std::string &boundary_name)
Fills the block with magic words.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
char boundary_name_[kMaxBoundaryNameLength]
const uint64_t kProtectedBoundaryMagicWord
void assert_boundary() const
Called at shutdown to check whether these boundaries were not accessed.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
ErrorCode release_protect()
Removes all access restrictions via mprotect().
ErrorCode
Enum of error codes defined in error_code.xmacro.
ErrorCode acquire_protect()
Puts a strict access prohibition via mprotect().
uint64_t data_[kWordCount]