Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
tmem.h File Reference
#include <linux/types.h>
#include <linux/highmem.h>
#include <linux/hash.h>
#include <linux/atomic.h>

Go to the source code of this file.

Data Structures

struct  tmem_hashbucket
 
struct  tmem_pool
 
struct  tmem_oid
 
struct  tmem_obj
 
struct  tmem_objnode
 
struct  tmem_handle
 
struct  tmem_pamops
 
struct  tmem_hostops
 

Macros

#define TMEM_POOL_PERSIST   1
 
#define TMEM_POOL_SHARED   2
 
#define TMEM_POOL_PRECOMPRESSED   4
 
#define TMEM_POOL_PAGESIZE_SHIFT   4
 
#define TMEM_POOL_PAGESIZE_MASK   0xf
 
#define TMEM_POOL_RESERVED_BITS   0x00ffff00
 
#define DECL_SENTINEL
 
#define SET_SENTINEL(_x, _y)   do { } while (0)
 
#define INVERT_SENTINEL(_x, _y)   do { } while (0)
 
#define ASSERT_SENTINEL(_x, _y)   do { } while (0)
 
#define ASSERT_INVERTED_SENTINEL(_x, _y)   do { } while (0)
 
#define ASSERT_SPINLOCK(_l)   lockdep_assert_held(_l)
 
#define TMEM_HASH_BUCKET_BITS   8
 
#define TMEM_HASH_BUCKETS   (1<<TMEM_HASH_BUCKET_BITS)
 
#define is_persistent(_p)   (_p->persistent)
 
#define is_ephemeral(_p)   (!(_p->persistent))
 
#define OBJNODE_TREE_MAP_SHIFT   6
 
#define OBJNODE_TREE_MAP_SIZE   (1UL << OBJNODE_TREE_MAP_SHIFT)
 
#define OBJNODE_TREE_MAP_MASK   (OBJNODE_TREE_MAP_SIZE-1)
 
#define OBJNODE_TREE_INDEX_BITS   (8 /* CHAR_BIT */ * sizeof(unsigned long))
 
#define OBJNODE_TREE_MAX_PATH   (OBJNODE_TREE_INDEX_BITS/OBJNODE_TREE_MAP_SHIFT + 2)
 

Functions

void tmem_register_pamops (struct tmem_pamops *m)
 
void tmem_register_hostops (struct tmem_hostops *m)
 
int tmem_put (struct tmem_pool *, struct tmem_oid *, uint32_t index, bool, void *)
 
int tmem_get (struct tmem_pool *, struct tmem_oid *, uint32_t index, char *, size_t *, bool, int)
 
int tmem_flush_page (struct tmem_pool *, struct tmem_oid *, uint32_t index)
 
int tmem_flush_object (struct tmem_pool *, struct tmem_oid *)
 
int tmem_destroy_pool (struct tmem_pool *)
 
void tmem_new_pool (struct tmem_pool *, uint32_t)
 

Macro Definition Documentation

#define ASSERT_INVERTED_SENTINEL (   _x,
  _y 
)    do { } while (0)

Definition at line 43 of file tmem.h.

#define ASSERT_SENTINEL (   _x,
  _y 
)    do { } while (0)

Definition at line 42 of file tmem.h.

#define ASSERT_SPINLOCK (   _l)    lockdep_assert_held(_l)

Definition at line 46 of file tmem.h.

#define DECL_SENTINEL

Definition at line 39 of file tmem.h.

#define INVERT_SENTINEL (   _x,
  _y 
)    do { } while (0)

Definition at line 41 of file tmem.h.

#define is_ephemeral (   _p)    (!(_p->persistent))

Definition at line 77 of file tmem.h.

#define is_persistent (   _p)    (_p->persistent)

Definition at line 76 of file tmem.h.

#define OBJNODE_TREE_INDEX_BITS   (8 /* CHAR_BIT */ * sizeof(unsigned long))

Definition at line 189 of file tmem.h.

#define OBJNODE_TREE_MAP_MASK   (OBJNODE_TREE_MAP_SIZE-1)

Definition at line 188 of file tmem.h.

#define OBJNODE_TREE_MAP_SHIFT   6

Definition at line 186 of file tmem.h.

#define OBJNODE_TREE_MAP_SIZE   (1UL << OBJNODE_TREE_MAP_SHIFT)

Definition at line 187 of file tmem.h.

#define OBJNODE_TREE_MAX_PATH   (OBJNODE_TREE_INDEX_BITS/OBJNODE_TREE_MAP_SHIFT + 2)

Definition at line 190 of file tmem.h.

#define SET_SENTINEL (   _x,
  _y 
)    do { } while (0)

Definition at line 40 of file tmem.h.

#define TMEM_HASH_BUCKET_BITS   8

Definition at line 56 of file tmem.h.

#define TMEM_HASH_BUCKETS   (1<<TMEM_HASH_BUCKET_BITS)

Definition at line 57 of file tmem.h.

#define TMEM_POOL_PAGESIZE_MASK   0xf

Definition at line 24 of file tmem.h.

#define TMEM_POOL_PAGESIZE_SHIFT   4

Definition at line 23 of file tmem.h.

#define TMEM_POOL_PERSIST   1

Definition at line 20 of file tmem.h.

#define TMEM_POOL_PRECOMPRESSED   4

Definition at line 22 of file tmem.h.

#define TMEM_POOL_RESERVED_BITS   0x00ffff00

Definition at line 25 of file tmem.h.

#define TMEM_POOL_SHARED   2

Definition at line 21 of file tmem.h.

Function Documentation

int tmem_destroy_pool ( struct tmem_pool )

Definition at line 859 of file tmem.c.

int tmem_flush_object ( struct tmem_pool ,
struct tmem_oid  
)

Definition at line 834 of file tmem.c.

int tmem_flush_page ( struct tmem_pool ,
struct tmem_oid ,
uint32_t  index 
)

Definition at line 803 of file tmem.c.

int tmem_get ( struct tmem_pool ,
struct tmem_oid ,
uint32_t  index,
char ,
size_t ,
bool  ,
int   
)

Definition at line 735 of file tmem.c.

void tmem_new_pool ( struct tmem_pool ,
uint32_t   
)

Definition at line 877 of file tmem.c.

int tmem_put ( struct tmem_pool ,
struct tmem_oid ,
uint32_t  index,
bool  ,
void  
)

Definition at line 560 of file tmem.c.

void tmem_register_hostops ( struct tmem_hostops m)

Definition at line 57 of file tmem.c.

void tmem_register_pamops ( struct tmem_pamops m)

Definition at line 69 of file tmem.c.