static int set_traps_enabled(int val, void *param) { int new_value = val ? 1 : 0; if ((!traps_enabled && new_value) || (traps_enabled && !new_value)) { if (!new_value) { /* Traps have been disabled. */ traplist_t *p; for (p = traplist; p != NULL; p = p->next) { remove_trap(p->trap); } } else { /* Traps have been enabled. */ traplist_t *p; for (p = traplist; p != NULL; p = p->next) { install_trap(p->trap); } } } traps_enabled = new_value; machine_bus_status_virtualdevices_set((unsigned int)new_value); return 0; }
void traps_refresh(void) { if (traps_enabled) { traplist_t *p; for (p = traplist; p != NULL; p = p->next) { remove_trap(p->trap); install_trap(p->trap); } } return; }
int traps_add(const trap_t *trap) { traplist_t *p; p = lib_malloc(sizeof(traplist_t)); p->next = traplist; p->trap = trap; traplist = p; if (traps_enabled) { install_trap(trap); } return 0; }
int traps_add(const trap_t *trap) { traplist_t *p; p = lib_malloc(sizeof(traplist_t)); p->next = traplist; p->trap = trap; traplist = p; if (traps_enabled) { install_trap(trap); } else { log_verbose("Traps are disabled, trap '%s' not installed.", trap->name); } return 0; }