void switch_release(void) { PRINT_DEBUG("Entered"); //TODO free all module related mem term_queue(RTM_to_Switch_Queue); //TODO move to RTM module when that's updated term_queue(Switch_to_RTM_Queue); }
void module_destroy_structs(struct fins_module *module) { PRINT_DEBUG("Entered: module=%p, id=%d, name='%s'", module, module->id, module->name); term_queue(module->output_queue); term_queue(module->input_queue); sem_destroy(module->output_sem); free(module->output_sem); sem_destroy(module->input_sem); free(module->input_sem); sem_destroy(module->event_sem); free(module->event_sem); metadata_destroy(module->knobs); }
void ipv4_release(void) { PRINT_DEBUG("Entered"); //TODO free all module related mem struct ip4_store *store; while (!store_list_is_empty()) { store = store_list; store_list_remove(store); store_free(store); } struct ip4_routing_table *table; while (routing_table) { table = routing_table; routing_table = routing_table->next_entry; free(table); } term_queue(IPv4_to_Switch_Queue); //TODO uncomment term_queue(Switch_to_IPv4_Queue); }
int removejinniSocket(unsigned long long targetID) { int i = 0; sem_wait(&jinniSockets_sem); for (i = 0; i < MAX_sockets; i++) { if (jinniSockets[i].uniqueSockID == targetID) { jinniSockets[i].uniqueSockID = -1; jinniSockets[i].connection_status = 0; term_queue(jinniSockets[i].dataQueue); sem_post(&jinniSockets_sem); return (1); } } sem_post(&jinniSockets_sem); return (-1); } // end of removejinniSocket