コード例 #1
0
void			get_return_value(struct user *usr)
{
  t_sysinfo		syscall;

  if (usr->regs.orig_rax > NB_SYSCALL)
    return ;
  syscall = g_syscalls[usr->regs.orig_rax];
  print_return_value(usr->regs.rax, syscall.return_type);
}
コード例 #2
0
ファイル: shell.c プロジェクト: shidasan/lisp_2012
static int exec(int using_readline) {
	jmp_buf buf;
	if (loop_frame_list == NULL) {
		loop_frame_list = new_array();
	}
	val_t null_value;
	null_value.ptr = NULL;
	loop_frame_push(&buf, null_value);
	if (setjmp(buf) == 0) {
		val_t val = vm_exec(memory + current_index, stack_value);
		if (!IS_NULL(val) && using_readline) {
			print_return_value(val);
			printf("\n");
		}
		loop_frame_t *frame = loop_frame_pop();
		FREE(frame);
		return 0;
	} else {
		cstack_cons_cell_clear();
		environment_clear();
		return 1;
	}
}