Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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);
}
Пример #4
0
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