Ejemplo n.º 1
0
void execute_instr(instr_s * instr){
	switch(instr->opcode){
		case assign_v: execute_assign(instr); break;
		case call_v: execute_call(instr); break;
		case funcenter_v: execute_funcenter(instr); break;
		case funcexit_v: execute_funcexit(instr); break;
		case pusharg_v: execute_pusharg(instr); break;
		case add_v: execute_arithmetic(instr); break;
		case sub_v: execute_arithmetic(instr); break;
		case mul_v: execute_arithmetic(instr); break;
		case div_v: execute_arithmetic(instr); break;
		case mod_v: execute_arithmetic(instr); break;
		case jump_v: execute_jump(instr); break;
		case jeq_v: execute_jeq(instr); break;
		case jne_v:execute_jeq(instr); break;
		case jgt_v:execute_cmp(instr); break;
		case jge_v:execute_cmp(instr); break;
		case jlt_v:execute_cmp(instr); break;
		case jle_v:execute_cmp(instr); break;
		case newtable_v: execute_newtable(instr); break;
		case tablegetelem_v: execute_tablegetelem(instr); break;
		case tablesetelem_v: execute_tablesetelem(instr); break;
		default: return;
	}
}
Ejemplo n.º 2
0
static int
accept4_slave(struct thread *td, int s /* local */, struct sockaddr *name,
	      socklen_t *anamelen, int flags)
{
	int error;

	error = execute_call(td, s, sizeof(struct sockaddr_storage), flags);
	if (error != 0)
		return (error);
	error = fmaster_execute_accept_return(td, ACCEPT4_RETURN, name,
					      anamelen);
	if (error != 0)
		return (error);

	return (0);
}
Ejemplo n.º 3
0
static int
recvmsg_slave(struct thread *td, struct msghdr *umsg, int lfd,
	      struct msghdr *kmsg, int flags)
{
	int error;

	error = execute_call(td, lfd, kmsg, flags);
	if (error != 0)
		return (error);
	error = execute_return(td, umsg, kmsg);
	if (error != 0)
		goto exit;

	error = 0;
exit:
	fmaster_freeall(td);

	return (error);
}
Ejemplo n.º 4
0
int execute_print(lua_State *L, struct luadebug_user *user)
{
	int i, g, h, status;
	LUA_STACK_MARK(L);

	g = lua_gettop(L);
	status = execute_call(L, 0);
	h = lua_gettop(L) - g + 1;

	for (i = h; i > 0; --i) {
		user->print(user, "  #%d\t", h-i+1);
		pprint(L, user, -i, true, "hide_underscore");
	}

	lua_settop(L, g);

	LUA_STACK_CHECK(L, 0);
	return status;
}