#include <linux/types.h>
#include <linux/highmem.h>
#include <linux/hash.h>
#include <linux/atomic.h>
Go to the source code of this file.
|
| 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, char *, size_t, bool, bool) |
| |
| int | tmem_get (struct tmem_pool *, struct tmem_oid *, uint32_t index, char *, size_t *, bool, int) |
| |
| int | tmem_replace (struct tmem_pool *, struct tmem_oid *, uint32_t index, void *) |
| |
| 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) |
| |
| #define ASSERT_INVERTED_SENTINEL |
( |
|
_x, |
|
|
|
_y |
|
) |
| WARN_ON(_x->sentinel != ~_y##_SENTINEL) |
| #define ASSERT_SENTINEL |
( |
|
_x, |
|
|
|
_y |
|
) |
| WARN_ON(_x->sentinel != _y##_SENTINEL) |
| #define DECL_SENTINEL uint32_t sentinel; |
| #define INVERT_SENTINEL |
( |
|
_x, |
|
|
|
_y |
|
) |
| (_x->sentinel = ~_y##_SENTINEL) |
| #define is_ephemeral |
( |
|
_p | ) |
(!(_p->persistent)) |
| #define is_persistent |
( |
|
_p | ) |
(_p->persistent) |
| #define OBJNODE_TREE_MAP_SHIFT 6 |
| #define OBJNODE_TREE_MAP_SIZE (1UL << OBJNODE_TREE_MAP_SHIFT) |
| #define SET_SENTINEL |
( |
|
_x, |
|
|
|
_y |
|
) |
| (_x->sentinel = _y##_SENTINEL) |
| #define TMEM_FLUSH_OBJECT 7 |
| #define TMEM_FLUSH_PAGE 6 |
| #define TMEM_HASH_BUCKET_BITS 8 |
| #define TMEM_POOL_PAGESIZE_MASK 0xf |
| #define TMEM_POOL_PAGESIZE_SHIFT 4 |
| #define TMEM_POOL_PERSIST 1 |
| #define TMEM_POOL_PRECOMPRESSED 4 |
| #define TMEM_POOL_RESERVED_BITS 0x00ffff00 |
| #define TMEM_POOL_SHARED 2 |