Zero  0.1.0
Classes | Macros | Functions
btree_page.h File Reference
#include "fixable_page_h.h"
#include "vec_t.h"

Go to the source code of this file.

Classes

class  btree_page_data
 This class holds B-tree-specific headers as well as an ordered list of items. More...
 
struct  btree_page_data::item_head
 
struct  btree_page_data::item_body
 
class  btree_page
 B-tree page. More...
 

Macros

#define STATIC_LESS_THAN(x, y)   BOOST_STATIC_ASSERT((x) < (y))
 

Functions

 BOOST_STATIC_ASSERT (sizeof(btree_page)==sizeof(generic_page))
 
template<typename T >
T volatile & ACCESS_ONCE (T &t)
 

Macro Definition Documentation

§ STATIC_LESS_THAN

#define STATIC_LESS_THAN (   x,
 
)    BOOST_STATIC_ASSERT((x) < (y))

Function Documentation

§ ACCESS_ONCE()

template<typename T >
T volatile& ACCESS_ONCE ( T t)
inline

C++ version of Linux kernel's ACCESS_ONCE() macro

Prevent the compiler from merging or refetching accesses. The compiler is also forbidden from reordering successive instances of ACCESS_ONCE(), but only when the compiler is aware of some particular ordering. One way to make the compiler aware of ordering is to put the two invocations of ACCESS_ONCE() in different C statements.

This does absolutely -nothing- to prevent the CPU from reordering, merging, or refetching absolutely anything at any time.

§ BOOST_STATIC_ASSERT()

BOOST_STATIC_ASSERT ( sizeof(btree_page = =sizeof(generic_page))