Android-cuttlefish cvd tool
Macros | Functions
dict.c File Reference
#include <stdlib.h>
#include <stddef.h>
#include "dict.h"
#include <f2fs_fs.h>
Include dependency graph for dict.c:

Macros

#define DICT_NODEBUG
 
#define dict_assert(x)
 
#define DICT_IMPLEMENTATION
 
#define left   dict_left
 
#define right   dict_right
 
#define parent   dict_parent
 
#define color   dict_color
 
#define key   dict_key
 
#define data   dict_data
 
#define nilnode   dict_nilnode
 
#define nodecount   dict_nodecount
 
#define maxcount   dict_maxcount
 
#define compare   dict_compare
 
#define allocnode   dict_allocnode
 
#define freenode   dict_freenode
 
#define context   dict_context
 
#define dupes   dict_dupes
 
#define dictptr   dict_dictptr
 
#define dict_root(D)   ((D)->nilnode.left)
 
#define dict_nil(D)   (&(D)->nilnode)
 
#define DICT_DEPTH_MAX   64
 

Functions

static dnode_tdnode_alloc (void *context)
 
static void dnode_free (dnode_t *node, void *context)
 
static void rotate_left (dnode_t *upper)
 
static void rotate_right (dnode_t *upper)
 
static void free_nodes (dict_t *dict, dnode_t *node, dnode_t *nil)
 
static int verify_dict_has_node (dnode_t *nil, dnode_t *root, dnode_t *node)
 
void dict_set_allocator (dict_t *dict, dnode_alloc_t al, dnode_free_t fr, void *context)
 
void dict_free_nodes (dict_t *dict)
 
dict_tdict_init (dict_t *dict, dictcount_t maxcount, dict_comp_t comp)
 
dnode_tdict_lookup (dict_t *dict, const void *key)
 
void dict_insert (dict_t *dict, dnode_t *node, const void *key)
 
int dict_alloc_insert (dict_t *dict, const void *key, void *data)
 
dnode_tdict_first (dict_t *dict)
 
dnode_tdict_last (dict_t *dict)
 
dnode_tdict_next (dict_t *dict, dnode_t *curr)
 
dnode_tdict_prev (dict_t *dict, dnode_t *curr)
 
void dict_allow_dupes (dict_t *dict)
 
dictcount_t dict_count (dict_t *dict)
 
int dict_isempty (dict_t *dict)
 
int dict_isfull (dict_t *dict)
 
int dict_contains (dict_t *dict, dnode_t *node)
 
static dnode_tdnode_alloc (void *UNUSED(context))
 
static void dnode_free (dnode_t *node, void *UNUSED(context))
 
dnode_tdnode_create (void *data)
 
dnode_tdnode_init (dnode_t *dnode, void *data)
 
void dnode_destroy (dnode_t *dnode)
 
void * dnode_get (dnode_t *dnode)
 
const void * dnode_getkey (dnode_t *dnode)
 

Macro Definition Documentation

◆ allocnode

#define allocnode   dict_allocnode

◆ color

#define color   dict_color

◆ compare

#define compare   dict_compare

◆ context

#define context   dict_context

◆ data

#define data   dict_data

◆ dict_assert

#define dict_assert (   x)

◆ DICT_DEPTH_MAX

#define DICT_DEPTH_MAX   64

◆ DICT_IMPLEMENTATION

#define DICT_IMPLEMENTATION

◆ dict_nil

#define dict_nil (   D)    (&(D)->nilnode)

◆ DICT_NODEBUG

#define DICT_NODEBUG

◆ dict_root

#define dict_root (   D)    ((D)->nilnode.left)

◆ dictptr

#define dictptr   dict_dictptr

◆ dupes

#define dupes   dict_dupes

◆ freenode

#define freenode   dict_freenode

◆ key

#define key   dict_key

◆ left

#define left   dict_left

◆ maxcount

#define maxcount   dict_maxcount

◆ nilnode

#define nilnode   dict_nilnode

◆ nodecount

#define nodecount   dict_nodecount

◆ parent

#define parent   dict_parent

◆ right

#define right   dict_right

Function Documentation

◆ dict_alloc_insert()

int dict_alloc_insert ( dict_t dict,
const void *  key,
void *  data 
)

◆ dict_allow_dupes()

void dict_allow_dupes ( dict_t dict)

◆ dict_contains()

int dict_contains ( dict_t dict,
dnode_t node 
)

◆ dict_count()

dictcount_t dict_count ( dict_t dict)

◆ dict_first()

dnode_t * dict_first ( dict_t dict)

◆ dict_free_nodes()

void dict_free_nodes ( dict_t dict)

◆ dict_init()

dict_t * dict_init ( dict_t dict,
dictcount_t  maxcount,
dict_comp_t  comp 
)

◆ dict_insert()

void dict_insert ( dict_t dict,
dnode_t node,
const void *  key 
)

◆ dict_isempty()

int dict_isempty ( dict_t dict)

◆ dict_isfull()

int dict_isfull ( dict_t dict)

◆ dict_last()

dnode_t * dict_last ( dict_t dict)

◆ dict_lookup()

dnode_t * dict_lookup ( dict_t dict,
const void *  key 
)

◆ dict_next()

dnode_t * dict_next ( dict_t dict,
dnode_t curr 
)

◆ dict_prev()

dnode_t * dict_prev ( dict_t dict,
dnode_t curr 
)

◆ dict_set_allocator()

void dict_set_allocator ( dict_t dict,
dnode_alloc_t  al,
dnode_free_t  fr,
void *  context 
)

◆ dnode_alloc() [1/2]

static dnode_t * dnode_alloc ( void *  context)
static

◆ dnode_alloc() [2/2]

static dnode_t * dnode_alloc ( void *  UNUSEDcontext)
static

◆ dnode_create()

dnode_t * dnode_create ( void *  data)

◆ dnode_destroy()

void dnode_destroy ( dnode_t dnode)

◆ dnode_free() [1/2]

static void dnode_free ( dnode_t node,
void *  context 
)
static

◆ dnode_free() [2/2]

static void dnode_free ( dnode_t node,
void *  UNUSEDcontext 
)
static

◆ dnode_get()

void * dnode_get ( dnode_t dnode)

◆ dnode_getkey()

const void * dnode_getkey ( dnode_t dnode)

◆ dnode_init()

dnode_t * dnode_init ( dnode_t dnode,
void *  data 
)

◆ free_nodes()

static void free_nodes ( dict_t dict,
dnode_t node,
dnode_t nil 
)
static

◆ rotate_left()

static void rotate_left ( dnode_t upper)
static

◆ rotate_right()

static void rotate_right ( dnode_t upper)
static

◆ verify_dict_has_node()

static int verify_dict_has_node ( dnode_t nil,
dnode_t root,
dnode_t node 
)
static