14 #ifndef __GMP_PRIVATE_H__
15 #define __GMP_PRIVATE_H__
28 #define EMBEDDED_STRUCT_TO_STRUCT(procname, outerstruct, innerstruct, field) \
29 static inline outerstruct * procname (innerstruct *ptr) \
32 return ((outerstruct *) (((uint8_t *) ptr) - \
33 offsetof(outerstruct, field))); \
49 #define GMP_VERSION_DEFAULT GMP_VERSION_SOURCES
50 #define GMP_ROBUSTNESS_DEFAULT 2
51 #define GMP_UNSOL_RPT_IVL_DEFAULT 1000
54 #define MSECS_PER_SEC 1000
111 adcat_ent_addr_node);
219 addr_ent_xmit_thread);
379 uint32_t buffer_len);
457 static inline uint32_t
497 static inline boolean
548 const uint8_t *addr);
568 boolean new_val,
boolean old_val);
594 const uint8_t *group_addr, uint32_t addr_len);
598 uint32_t buffer_len);
struct gmp_addr_list_entry_ *(* gmp_addr_list_alloc_func)(void *ctx)
void gmp_move_addr_list_entry(gmp_addr_list *to_list, gmp_addr_list_entry *addr_entry)
boolean gmp_query_group_query
void(* gmp_addr_list_free_func)(struct gmp_addr_list_entry_ *addr_entry)
uint32_t gmp_addr_thread_count
void gmp_addr_list_clean(gmp_addr_list *addr_list)
gmp_packet * gmpp_create_packet_header(gmp_version version, gmp_message_type message_type, gmp_proto proto)
gmpx_patroot * adcat_ord_root
void gmpp_register(gmp_role role, gmp_xmit_callback_func xmit_callback, gmp_rcv_callback_func rcv_callback, gmp_group_done_callback_func group_done_callback, gmp_packet_free_callback_func packet_free_callback)
gmpx_patnode adcat_ent_ord_node
task_thread addr_ent_xmit_thread
void gmp_enqueue_xmit_addr_list(gmp_addr_list *addr_list)
void gmp_init_addr_vector(gmp_addr_vect *vector, gmp_addr_catalog *catalog)
void gmp_common_init(void)
void gmpp_start_xmit(gmp_role role, gmp_proto proto, gmpx_intf_id intf_id)
gmpx_packet_attr gmp_packet_attr
boolean gmp_addr_is_zero(gmp_addr_string *addr, uint32_t addr_len)
gmpx_patroot * addr_list_root
gmp_query_packet gmp_packet_query
void gmp_flush_addr_list(gmp_addr_list *addr_list)
static boolean gmp_addr_in_list(gmp_addr_list *addr_list, ordinal_t ordinal)
void gmp_lock_adcat_entry(gmp_addr_catalog *catalog, ordinal_t ordinal)
struct gmp_addr_list_ gmp_addr_list
void gmpp_packet_done(gmp_role role, gmp_proto proto, gmp_packet *packet)
task_thread gmp_adth_thread
gmp_addr_string gmp_adth_addr
gmp_message_type gmp_packet_type
boolean bv_bit_is_set(bit_vector *bv, bv_bitnum_t bit_number)
gmp_addr_catalog * av_catalog
void gmpp_group_done(gmp_role role, gmp_proto proto, void *group_id)
static bit_vector * gmp_addr_vector(gmp_addr_vect *addr_vect)
#define GMPX_PATNODE_TO_STRUCT
#define THREAD_TO_STRUCT(function, structure, member)
task_thread gmp_report_group_head
int gmp_addr_vect_compare(gmp_addr_vect *src1, gmp_addr_vect *src2, bv_callback callback, void *context)
gmp_addr_list * gmp_query_xmit_srcs
void gmp_enqueue_xmit_addr_entry(gmp_addr_list_entry *addr_entry)
gmpx_patnode addr_ent_patnode
gmp_addr_list_alloc_func addr_alloc
gmp_proto gmp_packet_proto
static gmp_version gmp_translate_version(gmp_proto proto, uint32_t version)
void gmpp_enab_disab_proto(gmp_role role, gmp_proto proto, boolean enabled)
void(* gmp_packet_free_callback_func)(gmp_packet *packet)
boolean(* bv_callback)(void *context, bv_bitnum_t bit_number, boolean new_bit_value, boolean old_bit_value)
uint32_t gmpp_max_group_count(gmp_proto proto, gmp_version version, gmp_message_type msg_type, uint32_t buffer_len)
void gmp_free_generic_addr_list_entry(gmp_addr_list_entry *addr_entry)
gmp_addr_cat_entry * gmp_get_addr_cat_by_ordinal(gmp_addr_catalog *catalog, ordinal_t ordinal)
int gmp_init_addr_catalog(gmp_addr_catalog *catalog, uint32_t addr_len)
gmp_addr_list * addr_ent_list
task_thread gmp_rpt_thread
void gmp_destroy_addr_catalog(gmp_addr_catalog *catalog)
struct gmp_addr_vect_ gmp_addr_vect
struct gmp_addr_list_entry_ gmp_addr_list_entry
task_thread addr_ent_thread
gmpx_patnode adcat_ent_addr_node
boolean gmp_addr_list_copy_cb(void *context, bv_bitnum_t bitnum, boolean new_val, boolean old_val)
void gmp_addr_vect_clean(gmp_addr_vect *vector)
int gmp_addr_vect_union(gmp_addr_vect *src1, gmp_addr_vect *src2, gmp_addr_vect *dest, bv_callback callback, void *context, bv_callback_option cb_opt)
gmp_addr_thread * gmp_rpt_rcv_srcs
boolean gmp_xmit_addr_list_empty(gmp_addr_list *list)
int gmp_build_addr_list(gmp_addr_list *addr_list, gmp_addr_vect *vector)
boolean gmp_addr_vect_empty(gmp_addr_vect *vector)
int gmp_addr_vect_inter(gmp_addr_vect *src1, gmp_addr_vect *src2, gmp_addr_vect *dest, bv_callback callback, void *context, bv_callback_option cb_opt)
gmp_packet *(* gmp_xmit_callback_func)(gmpx_intf_id intf_id, gmp_proto proto, uint32_t buffer_len)
gmpx_patroot * adcat_addr_root
int gmp_addr_vect_fill(gmp_addr_vect *addr_vect, gmp_addr_thread *addr_thread)
task_thread gmp_addr_thread_head
task_thread addr_list_head
gmp_addr_list_entry * gmp_create_addr_list_entry(gmp_addr_list *addr_list, ordinal_t ordinal)
gmp_addr_list_entry * gmp_first_xmit_addr_entry(gmp_addr_list *addr_list)
gmp_addr_list * gmp_rpt_xmit_srcs
gmp_addr_cat_entry * gmp_lookup_addr_cat_entry(gmp_addr_catalog *catalog, const uint8_t *addr)
gmp_addr_list_free_func addr_free
gmp_addr_string gmp_packet_src_addr
void gmpp_destroy_packet(gmp_packet *packet)
boolean gmp_addr_list_empty(gmp_addr_list *list)
gmp_addr_thread * gmp_query_rcv_srcs
gmp_packet * gmpp_next_xmit_packet(gmp_role role, gmp_proto proto, gmpx_intf_id intf_id, uint32_t buffer_len)
void gmp_unlock_adcat_entry(gmp_addr_catalog *catalog, ordinal_t ordinal)
struct gmp_addr_catalog_ gmp_addr_catalog
void gmp_flush_xmit_list(gmp_addr_list *addr_list)
static uint32_t gmp_untranslate_version(gmp_proto proto, gmp_version version)
int gmp_addr_vect_set(gmp_addr_vect *vector, gmp_addr_string *addr)
ordinal_t gmp_lookup_create_addr_cat_entry(gmp_addr_catalog *catalog, uint8_t *addr)
gmp_report_packet gmp_packet_report
void gmp_delete_addr_list_entry(gmp_addr_list_entry *addr_entry)
gmp_addr_list_entry * gmp_lookup_addr_entry(gmp_addr_list *addr_list, ordinal_t ordinal)
int gmp_addr_vect_walk(gmp_addr_vect *vect, bv_callback callback, void *context)
gmp_addr_string gmp_packet_dest_addr
void(* gmp_rcv_callback_func)(gmpx_intf_id intf_id, gmp_packet *pkt)
task_thread addr_list_xmit_head
gmp_version gmp_packet_version
gmp_addr_string gmp_rpt_group
struct gmp_query_packet_ gmp_query_packet
struct gmp_report_group_record_ gmp_report_group_record
gmp_report_group_record * gmpp_create_group_record(gmp_report_packet *report_packet, void *group_id, const uint8_t *group_addr, uint32_t addr_len)
void gmpp_deregister(gmp_role role)
void gmp_addr_list_init(gmp_addr_list *list, gmp_addr_catalog *catalog, gmp_addr_list_alloc_func alloc_func, gmp_addr_list_free_func free_func, void *context)
gmp_addr_string gmp_query_group
void * gmp_query_group_id
gmp_report_rectype gmp_rpt_type
gmp_addr_string adcat_ent_addr
uint32_t gmp_report_group_count
union gmp_packet_::@9 gmp_packet_contents
int gmp_addr_vect_minus(gmp_addr_vect *src1, gmp_addr_vect *src2, gmp_addr_vect *dest, bv_callback callback, void *context, bv_callback_option cb_opt)
struct gmp_addr_cat_entry_ gmp_addr_cat_entry
void gmpp_process_rcv_packet(gmp_packet *packet, gmpx_intf_id intf_id)
ordinal_handle adcat_ord_handle
void(* gmp_group_done_callback_func)(void *group_id)
int gmp_add_addr_list_entry(gmp_addr_list *addr_list, gmp_addr_list_entry *addr_entry)
gmp_addr_list_entry * gmp_alloc_generic_addr_list_entry(void *context)
void gmp_dequeue_xmit_addr_entry(gmp_addr_list_entry *addr_entry)
int32_t adcat_ent_refcount
boolean gmp_query_suppress
uint32_t gmp_query_max_resp
struct gmp_report_packet_ gmp_report_packet
gmp_addr_list_entry * gmp_addr_list_next_entry(gmp_addr_list *list, gmp_addr_list_entry *prev)