void _cmp_groupcounter_init() { //constructions _cmp_groupcounter->mutex = mutex_ctor(); //Binding CMP_BIND(_cmp_groupcounter->start, _groupcounter_start); CMP_BIND(_cmp_groupcounter->stop, _groupcounter_stop); CMP_BIND(_cmp_groupcounter->restart, _groupcounter_restart); CMP_BIND(_cmp_groupcounter->sniff_receiver, _groupcounter_sniff_receiver); CMP_BIND(_cmp_groupcounter->record_requester, _groupcounter_record_requester); }
void eth_init(void) { log_category_proto_eth_init(); ext_param_collapse_vlans_init(); mutex_ctor(ð_subprotos_mutex, "Eth subprotocols"); static struct proto_ops const ops = { .parse = eth_parse, .parser_new = mux_parser_new, .parser_del = mux_parser_del, .info_2_str = eth_info_2_str, .info_addr = eth_info_addr }; mux_proto_ctor(&mux_proto_eth, &ops, &mux_proto_ops, "Ethernet", PROTO_CODE_ETH, sizeof(vlan_unset) /* vlan_id */, 11); LIST_INIT(ð_subprotos); }
void ref_init(void) { if (inited++) return; mutex_init(); bench_init(); bench_event_ctor(&dooming, "del doomed objs"); mutex_ctor(&death_row_mutex, "death row"); SLIST_INIT(&death_row); log_category_ref_init(); rwlock_ctor(&rwlock, "doomer"); int err = pthread_create(&doomer_pth, NULL, doomer_thread, NULL); if (err) { SLOG(LOG_ERR, "Cannot pthread_create(): %s", strerror(err)); } }
void on_load(void) { log_category_duplicogram_init(); ext_param_bucket_width_init(); SLOG(LOG_INFO, "Duplicogram loaded"); term_init(&handle_key); cli_register("Duplicogram plugin", duplicogram_opts, NB_ELEMS(duplicogram_opts)); mutex_ctor(&dup_lock, "Duplicogram mutex"); ext_function_ctor(&sg_get_duplicogram, "get-duplicogram", 0, 0, 0, g_get_duplicogram, "(get-duplicogram): fetch duplicogram data and reset internal state. Not for the casual user"); hook_subscriber_ctor(&dup_hook, &dup_subscription, dup_callback); hook_subscriber_ctor(&proto_cap->hook, &cap_subscription, cap_callback); }