Microchip® Advanced Software Framework

nbr-table.c File Reference
#include "contiki.h"
#include <stddef.h>
#include <string.h>
#include "lib/memb.h"
#include "lib/list.h"
#include "net/nbr-table.h"

Data Structures

struct  nbr_table_key
 

Macros

#define MAX_NUM_TABLES   8
 

Typedefs

typedef struct nbr_table_key nbr_table_key_t
 

Functions

static int index_from_item (nbr_table_t *table, const nbr_table_item_t *item)
 
static int index_from_key (nbr_table_key_t *key)
 
static int index_from_lladdr (const linkaddr_t *lladdr)
 
static nbr_table_item_titem_from_index (nbr_table_t *table, int index)
 
static nbr_table_item_titem_from_key (nbr_table_t *table, nbr_table_key_t *key)
 
static nbr_table_key_tkey_from_index (int index)
 
static nbr_table_key_tkey_from_item (nbr_table_t *table, const nbr_table_item_t *item)
 
 LIST (nbr_table_keys)
 
 MEMB (neighbor_addr_mem, nbr_table_key_t, NBR_TABLE_MAX_NEIGHBORS)
 
static int nbr_get_bit (uint8_t *bitmap, nbr_table_t *table, nbr_table_item_t *item)
 
static int nbr_set_bit (uint8_t *bitmap, nbr_table_t *table, nbr_table_item_t *item, int value)
 
nbr_table_item_tnbr_table_add_lladdr (nbr_table_t *table, const linkaddr_t *lladdr)
 
static nbr_table_key_tnbr_table_allocate (void)
 
void * nbr_table_get_from_lladdr (nbr_table_t *table, const linkaddr_t *lladdr)
 
linkaddr_tnbr_table_get_lladdr (nbr_table_t *table, const void *item)
 
nbr_table_item_tnbr_table_head (nbr_table_t *table)
 
int nbr_table_lock (nbr_table_t *table, void *item)
 
nbr_table_item_tnbr_table_next (nbr_table_t *table, nbr_table_item_t *item)
 
int nbr_table_register (nbr_table_t *table, nbr_table_callback *callback)
 
int nbr_table_remove (nbr_table_t *table, void *item)
 
int nbr_table_unlock (nbr_table_t *table, void *item)
 

Variables

static struct nbr_tableall_tables [MAX_NUM_TABLES]
 
static uint8_t locked_map [NBR_TABLE_MAX_NEIGHBORS]
 
static unsigned num_tables
 
static uint8_t used_map [NBR_TABLE_MAX_NEIGHBORS]
 

#define MAX_NUM_TABLES   8

static int index_from_item ( nbr_table_t table,
const nbr_table_item_t item 
)
static
static int index_from_key ( nbr_table_key_t key)
static
static int index_from_lladdr ( const linkaddr_t lladdr)
static
static nbr_table_item_t* item_from_index ( nbr_table_t table,
int  index 
)
static
static nbr_table_item_t* item_from_key ( nbr_table_t table,
nbr_table_key_t key 
)
static
static nbr_table_key_t* key_from_index ( int  index)
static

References nbr_table::index, and NULL.

Referenced by key_from_item().

static nbr_table_key_t* key_from_item ( nbr_table_t table,
const nbr_table_item_t item 
)
static
LIST ( nbr_table_keys  )
MEMB ( neighbor_addr_mem  ,
nbr_table_key_t  ,
NBR_TABLE_MAX_NEIGHBORS   
)
static int nbr_get_bit ( uint8_t *  bitmap,
nbr_table_t table,
nbr_table_item_t item 
)
static
static int nbr_set_bit ( uint8_t *  bitmap,
nbr_table_t table,
nbr_table_item_t item,
int  value 
)
static
linkaddr_t* nbr_table_get_lladdr ( nbr_table_t table,
const void *  item 
)
int nbr_table_lock ( nbr_table_t table,
void *  item 
)
int nbr_table_remove ( nbr_table_t table,
void *  item 
)
int nbr_table_unlock ( nbr_table_t table,
void *  item 
)

References locked_map, and nbr_set_bit().

Referenced by rpl_set_preferred_parent().

struct nbr_table* all_tables[MAX_NUM_TABLES]
static
unsigned num_tables
static

Referenced by nbr_table_register().