Example #1
0
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();
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
File: abts.c Project: vicallee/abts
/* 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;
}
Example #5
0
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;
}
Example #6
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;
}
Example #7
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);
}
Example #8
0
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);
}
Example #9
0
/**
 * 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;
}
Example #10
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;
}
Example #11
0
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;
}
Example #12
0
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();
}
Example #14
0
TEARDOWN()
{
	view_teardown(&lwin);

	reset_status(&cfg);
}
Example #15
0
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;
}
Example #16
0
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);
}