亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 3 頁
字號:
            info.si_errno = 0;            info.si_code = SEGV_NOOP;            info.si_addr = 0;            gdb_handlesig (env, SIGSEGV);            queue_signal(info.si_signo, &info);            break;        case EXCP06_ILLOP:            info.si_signo = SIGILL;            info.si_errno = 0;            info.si_code = ILL_ILLOPN;            info.si_addr = (void*)env->eip;            gdb_handlesig (env, SIGILL);            queue_signal(info.si_signo, &info);            break;        case EXCP_INTERRUPT:            /* just indicate that signals should be handled asap */            break;        case EXCP_DEBUG:            {                int sig;                sig = gdb_handlesig (env, SIGTRAP);                if (sig)                  {                    info.si_signo = sig;                    info.si_errno = 0;                    info.si_code = TRAP_BRKPT;                    queue_signal(info.si_signo, &info);                  }            }            break;        default:            pc = (void*)(env->segs[R_CS].base + env->eip);            fprintf(stderr, "qemu: 0x%08lx: unhandled CPU exception 0x%x - aborting\n",                    (long)pc, trapnr);            abort();        }        process_pending_signals(env);    }}#endifvoid usage(void){    printf("qemu-" TARGET_ARCH " version " QEMU_VERSION ", Copyright (c) 2003-2004 Fabrice Bellard\n"           "usage: qemu-" TARGET_ARCH " [-h] [-d opts] [-L path] [-s size] program [arguments...]\n"           "Darwin CPU emulator (compiled for %s emulation)\n"           "\n"           "-h           print this help\n"           "-L path      set the %s library path (default='%s')\n"           "-s size      set the stack size in bytes (default=%ld)\n"           "\n"           "debug options:\n"           "-d options   activate log (logfile='%s')\n"           "-g wait for gdb on port 1234\n"           "-p pagesize  set the host page size to 'pagesize'\n",           TARGET_ARCH,           TARGET_ARCH,           interp_prefix,           stack_size,           DEBUG_LOGFILE);    _exit(1);}/* XXX: currently only used for async signals (see signal.c) */CPUState *global_env;/* used only if single thread */CPUState *cpu_single_env = NULL;/* used to free thread contexts */TaskState *first_task_state;int main(int argc, char **argv){    const char *filename;    struct target_pt_regs regs1, *regs = &regs1;    TaskState ts1, *ts = &ts1;    CPUState *env;    int optind;    short use_gdbstub = 0;    const char *r;    const char *cpu_model;    if (argc <= 1)        usage();    /* init debug */    cpu_set_log_filename(DEBUG_LOGFILE);    optind = 1;    for(;;) {        if (optind >= argc)            break;        r = argv[optind];        if (r[0] != '-')            break;        optind++;        r++;        if (!strcmp(r, "-")) {            break;        } else if (!strcmp(r, "d")) {            int mask;            CPULogItem *item;        if (optind >= argc)        break;        r = argv[optind++];            mask = cpu_str_to_log_mask(r);            if (!mask) {                printf("Log items (comma separated):\n");                for(item = cpu_log_items; item->mask != 0; item++) {                    printf("%-10s %s\n", item->name, item->help);                }                exit(1);            }            cpu_set_log(mask);        } else if (!strcmp(r, "s")) {            r = argv[optind++];            stack_size = strtol(r, (char **)&r, 0);            if (stack_size <= 0)                usage();            if (*r == 'M')                stack_size *= 1024 * 1024;            else if (*r == 'k' || *r == 'K')                stack_size *= 1024;        } else if (!strcmp(r, "L")) {            interp_prefix = argv[optind++];        } else if (!strcmp(r, "p")) {            qemu_host_page_size = atoi(argv[optind++]);            if (qemu_host_page_size == 0 ||                (qemu_host_page_size & (qemu_host_page_size - 1)) != 0) {                fprintf(stderr, "page size must be a power of two\n");                exit(1);            }        } else        if (!strcmp(r, "g")) {            use_gdbstub = 1;        } else if (!strcmp(r, "cpu")) {            cpu_model = argv[optind++];            if (strcmp(cpu_model, "?") == 0) {/* XXX: implement xxx_cpu_list for targets that still miss it */#if defined(cpu_list)                    cpu_list(stdout, &fprintf);#endif                _exit(1);            }        } else        {            usage();        }    }    if (optind >= argc)        usage();    filename = argv[optind];    /* Zero out regs */    memset(regs, 0, sizeof(struct target_pt_regs));    if (cpu_model == NULL) {#if defined(TARGET_I386)#ifdef TARGET_X86_64        cpu_model = "qemu64";#else        cpu_model = "qemu32";#endif#elif defined(TARGET_PPC)#ifdef TARGET_PPC64        cpu_model = "970";#else        cpu_model = "750";#endif#else#error unsupported CPU#endif    }        /* NOTE: we need to init the CPU at this stage to get       qemu_host_page_size */    env = cpu_init(cpu_model);    printf("Starting %s with qemu\n----------------\n", filename);    commpage_init();    if (mach_exec(filename, argv+optind, environ, regs) != 0) {    printf("Error loading %s\n", filename);    _exit(1);    }    syscall_init();    signal_init();    global_env = env;    /* build Task State */    memset(ts, 0, sizeof(TaskState));    env->opaque = ts;    ts->used = 1;    env->user_mode_only = 1;#if defined(TARGET_I386)    cpu_x86_set_cpl(env, 3);    env->cr[0] = CR0_PG_MASK | CR0_WP_MASK | CR0_PE_MASK;    env->hflags |= HF_PE_MASK;    if (env->cpuid_features & CPUID_SSE) {        env->cr[4] |= CR4_OSFXSR_MASK;        env->hflags |= HF_OSFXSR_MASK;    }    /* flags setup : we activate the IRQs by default as in user mode */    env->eflags |= IF_MASK;    /* darwin register setup */    env->regs[R_EAX] = regs->eax;    env->regs[R_EBX] = regs->ebx;    env->regs[R_ECX] = regs->ecx;    env->regs[R_EDX] = regs->edx;    env->regs[R_ESI] = regs->esi;    env->regs[R_EDI] = regs->edi;    env->regs[R_EBP] = regs->ebp;    env->regs[R_ESP] = regs->esp;    env->eip = regs->eip;    /* Darwin LDT setup */    /* 2 - User code segment       3 - User data segment       4 - User cthread */    bzero(ldt_table, LDT_TABLE_SIZE * sizeof(ldt_table[0]));    env->ldt.base = (uint32_t) ldt_table;    env->ldt.limit = sizeof(ldt_table) - 1;    write_dt(ldt_table + 2, 0, 0xfffff,             DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK |             (3 << DESC_DPL_SHIFT) | (0xa << DESC_TYPE_SHIFT));    write_dt(ldt_table + 3, 0, 0xfffff,             DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK |             (3 << DESC_DPL_SHIFT) | (0x2 << DESC_TYPE_SHIFT));    write_dt(ldt_table + 4, 0, 0xfffff,             DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK |             (3 << DESC_DPL_SHIFT) | (0x2 << DESC_TYPE_SHIFT));    /* Darwin GDT setup.     * has changed a lot between old Darwin/x86 (pre-Mac Intel) and Mac OS X/x86,       now everything is done via  int 0x81(mach) int 0x82 (thread) and sysenter/sysexit(unix) */    bzero(gdt_table, sizeof(gdt_table));    env->gdt.base = (uint32_t)gdt_table;    env->gdt.limit = sizeof(gdt_table) - 1;    /* Set up a back door to handle sysenter syscalls (unix) */    char * syscallbackdoor = malloc(64);    page_set_flags((int)syscallbackdoor, (int)syscallbackdoor + 64, PROT_EXEC | PROT_READ | PAGE_VALID);    int i = 0;    syscallbackdoor[i++] = 0xcd;    syscallbackdoor[i++] = 0x90; /* int 0x90 */    syscallbackdoor[i++] = 0x0F;    syscallbackdoor[i++] = 0x35; /* sysexit */    /* Darwin sysenter/sysexit setup */    env->sysenter_cs = 0x1; //XXX    env->sysenter_eip = (int)syscallbackdoor;    env->sysenter_esp = (int)malloc(64);    /* Darwin TSS setup       This must match up with GDT[4] */    env->tr.base = (uint32_t) tss;    env->tr.limit = sizeof(tss) - 1;    env->tr.flags = DESC_P_MASK | (0x9 << DESC_TYPE_SHIFT);    stw(tss + 2, 0x10);  // ss0 = 0x10 = GDT[2] = Kernel Data Segment    /* Darwin interrupt setup */    bzero(idt_table, sizeof(idt_table));    env->idt.base = (uint32_t) idt_table;    env->idt.limit = sizeof(idt_table) - 1;    set_idt(0, 0);    set_idt(1, 0);    set_idt(2, 0);    set_idt(3, 3);    set_idt(4, 3);    set_idt(5, 3);    set_idt(6, 0);    set_idt(7, 0);    set_idt(8, 0);    set_idt(9, 0);    set_idt(10, 0);    set_idt(11, 0);    set_idt(12, 0);    set_idt(13, 0);    set_idt(14, 0);    set_idt(15, 0);    set_idt(16, 0);    set_idt(17, 0);    set_idt(18, 0);    set_idt(19, 0);    /* Syscalls are done via        int 0x80 (unix) (rarely used)        int 0x81 (mach)        int 0x82 (thread)        int 0x83 (diag) (not handled here)        sysenter/sysexit (unix) -> we redirect that to int 0x90 */    set_idt(0x79, 3); /* Commpage hack, here is our backdoor interrupt */    set_idt(0x80, 3); /* Unix Syscall */    set_idt(0x81, 3); /* Mach Syscalls */    set_idt(0x82, 3); /* thread Syscalls */    set_idt(0x90, 3); /* qemu-darwin-user's Unix syscalls backdoor */    cpu_x86_load_seg(env, R_CS, __USER_CS);    cpu_x86_load_seg(env, R_DS, __USER_DS);    cpu_x86_load_seg(env, R_ES, __USER_DS);    cpu_x86_load_seg(env, R_SS, __USER_DS);    cpu_x86_load_seg(env, R_FS, __USER_DS);    cpu_x86_load_seg(env, R_GS, __USER_DS);#elif defined(TARGET_PPC)    {        int i;#if defined(TARGET_PPC64)#if defined(TARGET_ABI32)        env->msr &= ~((target_ulong)1 << MSR_SF);#else        env->msr |= (target_ulong)1 << MSR_SF;#endif#endif        env->nip = regs->nip;        for(i = 0; i < 32; i++) {            env->gpr[i] = regs->gpr[i];        }    }#else#error unsupported target CPU#endif    if (use_gdbstub) {        printf("Waiting for gdb Connection on port 1234...\n");        gdbserver_start (1234);        gdb_handlesig(env, 0);    }    cpu_loop(env);    /* never exits */    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线观看第十页| 亚洲自拍欧美精品| 五月婷婷色综合| 国产另类ts人妖一区二区| 99re视频这里只有精品| 综合欧美亚洲日本| 91小视频在线观看| 亚洲大片在线观看| 精品欧美乱码久久久久久| 亚洲精品第一国产综合野| 91麻豆蜜桃一区二区三区| 日韩女优制服丝袜电影| 欧美高清在线视频| 免费成人在线观看| 欧美午夜电影网| 综合久久久久久久| 国产夫妻精品视频| 精品国产区一区| 免费人成精品欧美精品| 欧美日韩高清一区二区| 亚洲精品欧美在线| 色噜噜夜夜夜综合网| 日韩毛片高清在线播放| 成人国产精品免费观看视频| 亚洲精品在线观看网站| 日韩 欧美一区二区三区| 欧美色成人综合| 午夜日韩在线观看| 精品视频1区2区| 亚洲成精国产精品女| 欧美艳星brazzers| 亚洲一区电影777| 欧美日韩免费一区二区三区| 亚洲一区二区三区精品在线| 欧美日本精品一区二区三区| 国产精品嫩草影院av蜜臀| 日韩av一区二区三区| 7799精品视频| 日韩高清一级片| 国产精品亚洲成人| 国产一区福利在线| 亚洲国产日韩一级| 色激情天天射综合网| 久久久高清一区二区三区| 久久99热国产| 久久亚洲影视婷婷| www.亚洲精品| 亚洲综合激情网| 91精品国产高清一区二区三区蜜臀 | 国产麻豆午夜三级精品| 久久久久久99精品| a亚洲天堂av| 亚洲国产综合视频在线观看| 91精品国产综合久久久蜜臀粉嫩 | 福利一区二区在线| 综合激情网...| 欧美日韩国产乱码电影| 美腿丝袜一区二区三区| 国产日产欧美一区| 欧美日韩一级大片网址| 韩国三级在线一区| 最新久久zyz资源站| 欧美年轻男男videosbes| 久久99国产精品久久| 中文字幕一区二区三区色视频| 欧美综合一区二区三区| 国内精品不卡在线| 一区二区日韩av| 久久久久久久久久久电影| 91玉足脚交白嫩脚丫在线播放| 午夜精品久久久| 日本一区二区在线不卡| 91精品视频网| av电影天堂一区二区在线| 偷窥国产亚洲免费视频| 国产精品国产三级国产专播品爱网 | 日本亚洲视频在线| 中文字幕在线观看不卡| 日韩欧美一区二区免费| 色狠狠一区二区| 国产69精品久久99不卡| 免费人成在线不卡| 亚洲国产中文字幕在线视频综合 | 久久久久久一二三区| 欧洲中文字幕精品| 国产精品99久久久久| 日本特黄久久久高潮| 亚洲激情自拍偷拍| 国产精品日日摸夜夜摸av| 日韩精品一区二区三区中文不卡| 色综合久久中文字幕| 国产91丝袜在线观看| 久久精品国产99久久6| 天堂一区二区在线| 亚洲午夜精品网| 亚洲色欲色欲www在线观看| 欧美精品一区二区精品网| 欧美猛男男办公室激情| 91麻豆国产自产在线观看| 国产精品亚洲一区二区三区在线| 日韩精品成人一区二区三区| 一区二区三区日韩精品| 最近日韩中文字幕| 国产精品国产三级国产普通话蜜臀 | 蜜桃久久久久久| 天天综合网天天综合色| 亚洲电影一级黄| 亚洲国产精品天堂| 亚洲bt欧美bt精品| 亚洲午夜在线视频| 亚洲成人免费在线| 丝袜亚洲另类欧美综合| 婷婷综合久久一区二区三区| 亚洲va韩国va欧美va精品 | 亚洲高清在线视频| 午夜精品一区在线观看| 亚洲福利一二三区| 丝袜美腿亚洲一区| 美日韩一级片在线观看| 老司机午夜精品| 久久99精品视频| 国产精品一区二区三区乱码| 韩国精品免费视频| 成人午夜免费电影| 91论坛在线播放| 欧美日韩一区二区三区在线看 | 毛片av一区二区| 亚洲成人av在线电影| 天天射综合影视| 裸体一区二区三区| 国产a精品视频| 91麻豆swag| 欧美一级黄色录像| 国产视频视频一区| 亚洲精品videosex极品| 亚州成人在线电影| 精品一区二区三区在线播放视频| 国产精品77777竹菊影视小说| eeuss鲁一区二区三区| 欧美吞精做爰啪啪高潮| 欧美大片国产精品| 国产精品国产三级国产专播品爱网| 亚洲一区二区综合| 国内精品自线一区二区三区视频| 成人h版在线观看| 欧美日韩aaaaa| 久久久久99精品一区| 亚洲欧美色图小说| 另类人妖一区二区av| jlzzjlzz亚洲日本少妇| 欧美日韩精品电影| 国产欧美一区二区精品性| 亚洲一区二区精品视频| 国产综合成人久久大片91| 色欲综合视频天天天| 日韩欧美国产电影| 亚洲免费成人av| 国产乱国产乱300精品| 欧洲激情一区二区| 久久精品视频免费| 奇米四色…亚洲| 一本久道久久综合中文字幕| 26uuu另类欧美| 亚洲一区二区三区精品在线| 国产91综合一区在线观看| 欧美一级生活片| 亚洲精品亚洲人成人网 | 在线视频亚洲一区| 国产日韩精品视频一区| 日韩精品乱码免费| 欧美在线免费播放| 国产精品久久久久永久免费观看| 久久99国产精品久久| 欧美三级韩国三级日本一级| 中文字幕一区二区三区在线不卡| 九九视频精品免费| 欧美亚洲一区三区| 亚洲欧美日韩国产另类专区| 国产一区二区按摩在线观看| 欧美美女bb生活片| 国产高清成人在线| 欧美xxxx老人做受| 奇米综合一区二区三区精品视频| 欧美少妇一区二区| 亚洲自拍都市欧美小说| 91免费版pro下载短视频| 国产日产亚洲精品系列| 国产成人一区在线| 久久一夜天堂av一区二区三区| 毛片不卡一区二区| 日韩久久精品一区| 久久国产夜色精品鲁鲁99| 91精品国模一区二区三区| 亚洲福利视频导航| 欧美浪妇xxxx高跟鞋交| 午夜精品福利一区二区三区av| 欧美视频完全免费看| 亚洲高清在线精品| 91精品国产免费久久综合| 日韩精彩视频在线观看|