void unconcious() { string owner; object owner_ob; owner = query_temp("owner"); if( owner ) { owner_ob= find_player(owner); if( objectp(owner_ob = find_player(owner)) ) { if( (object)query_temp("last_damage_from") == owner_ob ) { set("owner", owner_ob->query("id")); delete_temp("owner"); reset_status(); this_object()->remove_all_killer(); this_object()->set("attitude", "heroism"); message_vision(HIY"\n$N低头缩尾,以示降服。\n"NOR, this_object()); return; } } } // message_vision(HIY"$N run away!\n"NOR, this_object()); die(); // ::unconcious(); }
static long sec_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { ssize_t rv = 0; struct sec_status *ss = (struct sec_status *)filp->private_data; pr_debug("ioctl, cmd = 0x%08X, arg = 0x%08lX\n", cmd, arg); mutex_lock(&ss->lock); switch (cmd) { case IOCTL_SET_CMD: reset_status(ss); ss->param.cmd = (u32)arg; ss->ip += sizeof(u32); break; default: rv = -EINVAL; break; } mutex_unlock(&ss->lock); pr_debug("rv: %d\n", rv); return rv; }
static int sec_open(struct inode *inode, struct file *filp) { int rv; struct sec_status *ss; pr_debug("enter\n"); if (!sdev.ops || !try_module_get(sdev.ops->owner)) { request_module("romlite_hs"); if (!sdev.ops || !try_module_get(sdev.ops->owner)) return -ENODEV; } ss = kzalloc(sizeof(*ss), GFP_KERNEL); if (!ss) { module_put(sdev.ops->owner); return -ENOMEM; } mutex_init(&ss->lock); init_waitqueue_head(&ss->writeq); init_waitqueue_head(&ss->readq); reset_status(ss); filp->private_data = ss; rv = nonseekable_open(inode, filp); if (rv) module_put(sdev.ops->owner); return rv; }
/* return the tail pointer */ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full) { abts_suite *newsuite; char *p; const char *suite_name; curr_char = 0; /* Only end the suite if we actually ran it */ if (suite && !suite->not_run) { end_suite(suite); } newsuite = malloc(sizeof(*newsuite)); newsuite->num_test = 0; newsuite->num_failed = 0; newsuite->next = newsuite; /* suite_name_full may be an absolute path depending on __FILE__ expansion */ suite_name = strrchr(suite_name_full, DELIMITER); if (suite_name) { suite_name++; } else { suite_name = suite_name_full; } p = strrchr(suite_name, '.'); if (p) { newsuite->name = memcpy(calloc(p - suite_name + 1, 1), suite_name, p - suite_name); } else { newsuite->name = strdup(suite_name); } if (list_tests) { fprintf(outfp, "%s\n", newsuite->name); } newsuite->not_run = 0; /* append to tail */ if (suite) { newsuite->next = suite->next; suite->next = newsuite; } suite = newsuite; if (!should_test_run(newsuite->name)) { newsuite->not_run = 1; return suite; } reset_status(); fprintf(outfp, "%-20s: ", newsuite->name); update_status(); fflush(outfp); return suite; }
static int sec_release(struct inode *inode, struct file *filp) { struct sec_status *ss = (struct sec_status *) filp->private_data; pr_debug("enter\n"); reset_status(ss); kfree(ss); /* should not be NULL here */ module_put(sdev.ops->owner); return 0; }
/** * Handle a DFU_CLRSTATUS request. * * @return 0 if no error has occurred, an error code otherwise. */ int dfu_clr_status() { /* we can receive a CLR_STATUS request only if an error has occurred */ if (dfu_state != DFU_STATE_DFU_ERROR) { set_err(DFU_STATUS_ERR_STALLEDPKT); return -EIO; } dfu_rh->clr_status(); reset_status(); return 0; }
TEARDOWN() { int i; reset_status(&cfg); for(i = 0; i < lwin.list_rows; ++i) { free_dir_entry(&lwin, &lwin.dir_entry[i]); } dynarray_free(lwin.dir_entry); }
int init_status(config_t *config) { inside_screen = !is_null_or_empty(env_get(SCREEN_ENVVAR)); inside_tmux = !is_null_or_empty(env_get(TMUX_ENVVAR)); load_def_values(&curr_stats, config); determine_fuse_umount_cmd(&curr_stats); set_gtk_available(&curr_stats); curr_stats.exec_env_type = get_exec_env_type(); stats_update_shell_type(config->shell); return reset_status(config); }
/** * Handle a USB Set Alternate Setting request for the DFU interface. * * @param alt_setting The alt_setting number to be activate. * * @return 0 if no error has occurred, an error code otherwise. */ int dfu_set_alt_setting(uint8_t alt_setting) { if (alt_setting >= DFU_CFG_NUM_ALT_SETTINGS) { return -EIO; } reset_status(); /* * Activate the proper handler depending on the selected alt setting: * - QFM if alt_setting == 0 * - QFU if alt_setting > 0 */ dfu_rh = (alt_setting == 0) ? &qfm_dfu_rh : &qfu_dfu_rh; dfu_rh->init(alt_setting); return 0; }
/* Reads command-specific results from ss->obuf, blocks if nothing to read * Treats ss->obuf as a circular buffer, copies available contents to user * space and blocks if nothing is available. */ static ssize_t sec_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos) { struct sec_status *ss = (struct sec_status *) filp->private_data; struct sec_obuf *obuf = ss->obuf; ssize_t rv = 0; if (mutex_lock_interruptible(&ss->lock)) return -ERESTARTSYS; /* * There is always something to read when we have a command, or the * command-specific read function does the blocking. */ while (ss->cmd == SEC_CMD_NONE) { /*FIXME: make sense?*/ mutex_unlock(&ss->lock); if (filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(ss->readq, (ss->cmd != SEC_CMD_NONE))) return -ERESTARTSYS; if (mutex_lock_interruptible(&ss->lock)) return -ERESTARTSYS; } if (obuf->rp >= obuf->wp) goto done; rv = min(count, (size_t)(obuf->wp - obuf->rp)); if (copy_to_user(buf, obuf->rp, rv)) { rv = -EFAULT; goto done; } obuf->rp += rv; if (obuf->rp == obuf->wp) { done: reset_status(ss); wake_up_interruptible(&ss->writeq); } mutex_unlock(&ss->lock); pr_debug("rv: %d\n", rv); return rv; }
int do_train(string arg) { object me, where; me=this_player(); where=environment(me); /* if( where->query("no_fight") ) return notify_fail("安全区内不能训兽!\n"); */ if( !arg ) return notify_fail("你要驯服什么?\n"); if( arg != (string)this_object()->query("id") ) return notify_fail("你要驯服什么?\n"); if( this_object()->query_temp("rider") ) return notify_fail("这匹坐骑上已经有人了。\n"); if( (string)this_object()->query("owner")==(string)me->query("id") ) return notify_fail("这匹坐骑已经是你的了。\n"); if( this_object()->is_fighting() ) return notify_fail("这匹坐骑已经分身不暇了。\n"); if( !living(this_object()) ) return notify_fail("现在耍什么威风?\n"); if( where->query("no_fight") ) { random_move(); return 1; } message_vision(HIM"$N冲上前去和$n扭打成一团。\n"NOR, me, this_object()); this_object()->set_temp("owner",me->query("id")); reset_status(); this_object()->kill_ob(me); me->fight_ob(this_object()); return 1; }
abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full) { sub_suite *subsuite; char *p; const char *suite_name; curr_char = 0; /* Only end the suite if we actually ran it */ if (suite && suite->tail &&!suite->tail->not_run) { end_suite(suite); } subsuite = malloc(sizeof(*subsuite)); subsuite->num_test = 0; subsuite->failed = 0; subsuite->next = NULL; /* suite_name_full may be an absolute path depending on __FILE__ * expansion */ suite_name = strrchr(suite_name_full, '/'); if (suite_name) { suite_name++; } else { suite_name = suite_name_full; } p = strrchr(suite_name, '.'); if (p) { subsuite->name = memcpy(calloc(p - suite_name + 1, 1), suite_name, p - suite_name); } else { subsuite->name = suite_name; } if (list_tests) { fprintf(stdout, "%s\n", subsuite->name); } subsuite->not_run = 0; if (suite == NULL) { suite = malloc(sizeof(*suite)); suite->head = subsuite; suite->tail = subsuite; } else { suite->tail->next = subsuite; suite->tail = subsuite; } if (!should_test_run(subsuite->name)) { subsuite->not_run = 1; return suite; } reset_status(); fprintf(stdout, "%-20s: ", subsuite->name); update_status(); fflush(stdout); return suite; }
//MenuController::Menu(int num_itmes) MenuController::MenuController() { reset_status(); }
TEARDOWN() { view_teardown(&lwin); reset_status(&cfg); }
static ssize_t sec_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos) { size_t size, c; ssize_t rv = 0; struct sec_status *ss = (struct sec_status *) filp->private_data; const char __user *ptr = buf; pr_debug("count: %d, cmd: %d\n", count, ss->cmd); if (mutex_lock_interruptible(&ss->lock)) return -ERESTARTSYS; while (ss->cmd != SEC_CMD_NONE) { mutex_unlock(&ss->lock); if (filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(ss->writeq, (ss->cmd == SEC_CMD_NONE))) return -ERESTARTSYS; if (mutex_lock_interruptible(&ss->lock)) return -ERESTARTSYS; } while (count) { /* * The amount of data we are still expecting to receive before a * command can be processed. */ if (ss->data) size = ss->param.length - (size_t)(ss->ip - ss->data); else size = sizeof(ss->param) - (size_t)(ss->ip - (u8 *)&ss->param); c = min(count, size); if (copy_from_user(ss->ip, ptr, c)) { rv = -EFAULT; break; } ss->ip += c; ptr += c; count -= c; size -= c; if (size == 0) { if (!ss->data) { size = ss->param.length; if (size < 0 || size > SEC_MAX_DATA_SIZE) { rv = -EFBIG; break; } if (size) { /*allocate the buffer*/ ss->data = kmalloc(size, GFP_KERNEL); if (!ss->data) { rv = -ENOMEM; break; } /* Continue with the parameter data */ ss->ip = ss->data; continue; } } /* all command data received, process... */ rv = process_cmd(ss); break; } } if (rv < 0) { /* Command failed, wake up any pending writers */ reset_status(ss); wake_up_interruptible(&ss->writeq); } else rv = ptr - buf; mutex_unlock(&ss->lock); pr_debug("rv: %d\n", rv); return rv; }
void vifm_restart(void) { FileView *tmp_view; curr_stats.restart_in_progress = 1; /* All user mappings in all modes. */ vle_keys_user_clear(); /* User defined commands. */ execute_cmd("comclear"); /* Autocommands. */ vle_aucmd_remove(NULL, NULL); /* Directory histories. */ ui_view_clear_history(&lwin); ui_view_clear_history(&rwin); /* All kinds of history. */ (void)hist_reset(&cfg.search_hist, cfg.history_len); (void)hist_reset(&cfg.cmd_hist, cfg.history_len); (void)hist_reset(&cfg.prompt_hist, cfg.history_len); (void)hist_reset(&cfg.filter_hist, cfg.history_len); cfg.history_len = 0; /* Session status. Must be reset _before_ options, because options take some * of values from status. */ (void)reset_status(&cfg); /* Options of current pane. */ reset_options_to_default(); /* Options of other pane. */ tmp_view = curr_view; curr_view = other_view; load_view_options(other_view); reset_options_to_default(); curr_view = tmp_view; /* File types and viewers. */ ft_reset(curr_stats.exec_env_type == EET_EMULATOR_WITH_X); /* Undo list. */ reset_undo_list(); /* Directory stack. */ dir_stack_clear(); /* Registers. */ regs_reset(); /* Clear all marks and bookmarks. */ clear_all_marks(); bmarks_clear(); /* Reset variables. */ clear_envvars(); init_variables(); /* This update is needed as clear_variables() will reset $PATH. */ update_path_env(1); reset_views(); read_info_file(1); flist_hist_save(&lwin, NULL, NULL, -1); flist_hist_save(&rwin, NULL, NULL, -1); /* Color schemes. */ if(stroscmp(curr_stats.color_scheme, DEF_CS_NAME) != 0 && cs_exists(curr_stats.color_scheme)) { if(cs_load_primary(curr_stats.color_scheme) != 0) { cs_load_defaults(); } } else { cs_load_defaults(); } cs_load_pairs(); cfg_load(); exec_startup_commands(&vifm_args); curr_stats.restart_in_progress = 0; /* Trigger auto-commands for initial directories. */ vle_aucmd_execute("DirEnter", lwin.curr_dir, &lwin); vle_aucmd_execute("DirEnter", rwin.curr_dir, &rwin); update_screen(UT_REDRAW); }