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

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

?? monitor.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
                suffix, addr, size * 2, val);}static void do_system_reset(void){    qemu_system_reset_request();}static void do_system_powerdown(void){    qemu_system_powerdown_request();}#if defined(TARGET_I386)static void print_pte(uint32_t addr, uint32_t pte, uint32_t mask){    term_printf("%08x: %08x %c%c%c%c%c%c%c%c\n",                addr,                pte & mask,                pte & PG_GLOBAL_MASK ? 'G' : '-',                pte & PG_PSE_MASK ? 'P' : '-',                pte & PG_DIRTY_MASK ? 'D' : '-',                pte & PG_ACCESSED_MASK ? 'A' : '-',                pte & PG_PCD_MASK ? 'C' : '-',                pte & PG_PWT_MASK ? 'T' : '-',                pte & PG_USER_MASK ? 'U' : '-',                pte & PG_RW_MASK ? 'W' : '-');}static void tlb_info(void){    CPUState *env;    int l1, l2;    uint32_t pgd, pde, pte;    env = mon_get_cpu();    if (!env)        return;    if (!(env->cr[0] & CR0_PG_MASK)) {        term_printf("PG disabled\n");        return;    }    pgd = env->cr[3] & ~0xfff;    for(l1 = 0; l1 < 1024; l1++) {        cpu_physical_memory_read(pgd + l1 * 4, (uint8_t *)&pde, 4);        pde = le32_to_cpu(pde);        if (pde & PG_PRESENT_MASK) {            if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {                print_pte((l1 << 22), pde, ~((1 << 20) - 1));            } else {                for(l2 = 0; l2 < 1024; l2++) {                    cpu_physical_memory_read((pde & ~0xfff) + l2 * 4,                                             (uint8_t *)&pte, 4);                    pte = le32_to_cpu(pte);                    if (pte & PG_PRESENT_MASK) {                        print_pte((l1 << 22) + (l2 << 12),                                  pte & ~PG_PSE_MASK,                                  ~0xfff);                    }                }            }        }    }}static void mem_print(uint32_t *pstart, int *plast_prot,                      uint32_t end, int prot){    int prot1;    prot1 = *plast_prot;    if (prot != prot1) {        if (*pstart != -1) {            term_printf("%08x-%08x %08x %c%c%c\n",                        *pstart, end, end - *pstart,                        prot1 & PG_USER_MASK ? 'u' : '-',                        'r',                        prot1 & PG_RW_MASK ? 'w' : '-');        }        if (prot != 0)            *pstart = end;        else            *pstart = -1;        *plast_prot = prot;    }}static void mem_info(void){    CPUState *env;    int l1, l2, prot, last_prot;    uint32_t pgd, pde, pte, start, end;    env = mon_get_cpu();    if (!env)        return;    if (!(env->cr[0] & CR0_PG_MASK)) {        term_printf("PG disabled\n");        return;    }    pgd = env->cr[3] & ~0xfff;    last_prot = 0;    start = -1;    for(l1 = 0; l1 < 1024; l1++) {        cpu_physical_memory_read(pgd + l1 * 4, (uint8_t *)&pde, 4);        pde = le32_to_cpu(pde);        end = l1 << 22;        if (pde & PG_PRESENT_MASK) {            if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {                prot = pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK);                mem_print(&start, &last_prot, end, prot);            } else {                for(l2 = 0; l2 < 1024; l2++) {                    cpu_physical_memory_read((pde & ~0xfff) + l2 * 4,                                             (uint8_t *)&pte, 4);                    pte = le32_to_cpu(pte);                    end = (l1 << 22) + (l2 << 12);                    if (pte & PG_PRESENT_MASK) {                        prot = pte & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK);                    } else {                        prot = 0;                    }                    mem_print(&start, &last_prot, end, prot);                }            }        } else {            prot = 0;            mem_print(&start, &last_prot, end, prot);        }    }}#endifstatic void do_info_kqemu(void){#ifdef USE_KQEMU    CPUState *env;    int val;    val = 0;    env = mon_get_cpu();    if (!env) {        term_printf("No cpu initialized yet");        return;    }    val = env->kqemu_enabled;    term_printf("kqemu support: ");    switch(val) {    default:    case 0:        term_printf("disabled\n");        break;    case 1:        term_printf("enabled for user code\n");        break;    case 2:        term_printf("enabled for user and kernel code\n");        break;    }#else    term_printf("kqemu support: not compiled\n");#endif}#ifdef CONFIG_PROFILERint64_t kqemu_time;int64_t qemu_time;int64_t kqemu_exec_count;int64_t dev_time;int64_t kqemu_ret_int_count;int64_t kqemu_ret_excp_count;int64_t kqemu_ret_intr_count;static void do_info_profile(void){    int64_t total;    total = qemu_time;    if (total == 0)        total = 1;    term_printf("async time  %" PRId64 " (%0.3f)\n",                dev_time, dev_time / (double)ticks_per_sec);    term_printf("qemu time   %" PRId64 " (%0.3f)\n",                qemu_time, qemu_time / (double)ticks_per_sec);    term_printf("kqemu time  %" PRId64 " (%0.3f %0.1f%%) count=%" PRId64 " int=%" PRId64 " excp=%" PRId64 " intr=%" PRId64 "\n",                kqemu_time, kqemu_time / (double)ticks_per_sec,                kqemu_time / (double)total * 100.0,                kqemu_exec_count,                kqemu_ret_int_count,                kqemu_ret_excp_count,                kqemu_ret_intr_count);    qemu_time = 0;    kqemu_time = 0;    kqemu_exec_count = 0;    dev_time = 0;    kqemu_ret_int_count = 0;    kqemu_ret_excp_count = 0;    kqemu_ret_intr_count = 0;#ifdef USE_KQEMU    kqemu_record_dump();#endif}#elsestatic void do_info_profile(void){    term_printf("Internal profiler not compiled\n");}#endif/* Capture support */static LIST_HEAD (capture_list_head, CaptureState) capture_head;static void do_info_capture (void){    int i;    CaptureState *s;    for (s = capture_head.lh_first, i = 0; s; s = s->entries.le_next, ++i) {        term_printf ("[%d]: ", i);        s->ops.info (s->opaque);    }}static void do_stop_capture (int n){    int i;    CaptureState *s;    for (s = capture_head.lh_first, i = 0; s; s = s->entries.le_next, ++i) {        if (i == n) {            s->ops.destroy (s->opaque);            LIST_REMOVE (s, entries);            qemu_free (s);            return;        }    }}#ifdef HAS_AUDIOint wav_start_capture (CaptureState *s, const char *path, int freq,                       int bits, int nchannels);static void do_wav_capture (const char *path,                            int has_freq, int freq,                            int has_bits, int bits,                            int has_channels, int nchannels){    CaptureState *s;    s = qemu_mallocz (sizeof (*s));    if (!s) {        term_printf ("Not enough memory to add wave capture\n");        return;    }    freq = has_freq ? freq : 44100;    bits = has_bits ? bits : 16;    nchannels = has_channels ? nchannels : 2;    if (wav_start_capture (s, path, freq, bits, nchannels)) {        term_printf ("Faied to add wave capture\n");        qemu_free (s);    }    LIST_INSERT_HEAD (&capture_head, s, entries);}#endifstatic term_cmd_t term_cmds[] = {    { "help|?", "s?", do_help,      "[cmd]", "show the help" },    { "commit", "s", do_commit,      "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },    { "info", "s?", do_info,      "subcommand", "show various information about the system state" },    { "q|quit", "", do_quit,      "", "quit the emulator" },    { "eject", "-fB", do_eject,      "[-f] device", "eject a removable medium (use -f to force it)" },    { "change", "BF", do_change,      "device filename", "change a removable medium" },    { "screendump", "F", do_screen_dump,      "filename", "save screen into PPM image 'filename'" },    { "logfile", "s", do_logfile,      "filename", "output logs to 'filename'" },    { "log", "s", do_log,      "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" },    { "savevm", "s?", do_savevm,      "tag|id", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" },    { "loadvm", "s", do_loadvm,      "tag|id", "restore a VM snapshot from its tag or id" },    { "delvm", "s", do_delvm,      "tag|id", "delete a VM snapshot from its tag or id" },    { "stop", "", do_stop,      "", "stop emulation", },    { "c|cont", "", do_cont,      "", "resume emulation", },#ifdef CONFIG_GDBSTUB    { "gdbserver", "s?", do_gdbserver,      "[port]", "start gdbserver session (default port=1234)", },#endif    { "x", "/l", do_memory_dump,      "/fmt addr", "virtual memory dump starting at 'addr'", },    { "xp", "/l", do_physical_memory_dump,      "/fmt addr", "physical memory dump starting at 'addr'", },    { "p|print", "/l", do_print,      "/fmt expr", "print expression value (use $reg for CPU register access)", },    { "i", "/ii.", do_ioport_read,      "/fmt addr", "I/O port read" },    { "sendkey", "s", do_send_key,      "keys", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1')" },    { "system_reset", "", do_system_reset,      "", "reset the system" },    { "system_powerdown", "", do_system_powerdown,      "", "send system power down event" },    { "sum", "ii", do_sum,      "addr size", "compute the checksum of a memory region" },    { "usb_add", "s", do_usb_add,      "device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" },    { "usb_del", "s", do_usb_del,      "device", "remove USB device 'bus.addr'" },    { "cpu", "i", do_cpu_set,      "index", "set the default CPU" },    { "mouse_move", "sss?", do_mouse_move,      "dx dy [dz]", "send mouse move events" },    { "mouse_button", "i", do_mouse_button,      "state", "change mouse button state (1=L, 2=M, 4=R)" },    { "mouse_set", "i", do_mouse_set,      "index", "set which mouse device receives events" },#ifdef HAS_AUDIO    { "wavcapture", "si?i?i?", do_wav_capture,      "path [frequency bits channels]",      "capture audio to a wave file (default frequency=44100 bits=16 channels=2)" },#endif     { "stopcapture", "i", do_stop_capture,       "capture index", "stop capture" },    { "memsave", "lis", do_memory_save,      "addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", },    { NULL, NULL, },};static term_cmd_t info_cmds[] = {    { "version", "", do_info_version,      "", "show the version of qemu" },    { "network", "", do_info_network,      "", "show the network state" },    { "block", "", do_info_block,      "", "show the block devices" },    { "blockstats", "", do_info_blockstats,      "", "show block device statistics" },    { "registers", "", do_info_registers,      "", "show the cpu registers" },    { "cpus", "", do_info_cpus,      "", "show infos for each CPU" },    { "history", "", do_info_history,      "", "show the command line history", },    { "irq", "", irq_info,      "", "show the interrupts statistics (if available)", },    { "pic", "", pic_info,      "", "show i8259 (PIC) state", },    { "pci", "", pci_info,      "", "show PCI info", },#if defined(TARGET_I386)    { "tlb", "", tlb_info,      "", "show virtual to physical memory mappings", },    { "mem", "", mem_info,      "", "show the active virtual memory mappings", },#endif    { "jit", "", do_info_jit,      "", "show dynamic compiler info", },    { "kqemu", "", do_info_kqemu,      "", "show kqemu information", },    { "usb", "", usb_info,      "", "show guest USB devices", },    { "usbhost", "", usb_host_info,      "", "show host USB devices", },    { "profile", "", do_info_profile,      "", "show profiling information", },    { "capture", "", do_info_capture,      "", "show capture information" },    { "snapshots", "", do_info_snapshots,      "", "show the currently saved VM snapshots" },    { "pcmcia", "", pcmcia_info,      "", "show guest PCMCIA status" },    { "mice", "", do_info_mice,      "", "show which guest mouse is receiving events" },    { "vnc", "", do_info_vnc,      "", "show the vnc server status"},    { "name", "", do_info_name,      "", "show the current VM name" },#if defined(TARGET_PPC)    { "cpustats", "", do_info_cpu_stats,      "", "show CPU statistics", },#endif#if defined(CONFIG_SLIRP)    { "slirp", "", do_info_slirp,      "", "show SLIRP statistics", },#endif    { NULL, NULL, },};/*******************************************************************/static const char *pch;static jmp_buf expr_env;#define MD_TLONG 0#define MD_I32   1typedef struct MonitorDef {    const char *name;    int offset;    target_long (*get_value)(struct MonitorDef *md, int val);    int type;} MonitorDef;#if defined(TARGET_I386)static target_long monitor_get_pc (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return env->eip + env->segs[R_CS].base;}#endif#if defined(TARGET_PPC)static target_long monitor_get_ccr (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    unsigned int u;    int i;    if (!env)        return 0;    u = 0;    for (i = 0; i < 8; i++)	u |= env->crf[i] << (32 - (4 * i));    return u;}static target_long monitor_get_msr (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return env->msr;}static target_long monitor_get_xer (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return ppc_load_xer(env);}static target_long monitor_get_decr (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return cpu_ppc_load_decr(env);}static target_long monitor_get_tbu (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return cpu_ppc_load_tbu(env);}static target_long monitor_get_tbl (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return cpu_ppc_load_tbl(env);}#endif#if defined(TARGET_SPARC)#ifndef TARGET_SPARC64static target_long monitor_get_psr (struct MonitorDef *md, int val){    CPUState *env = mon_get_cpu();    if (!env)        return 0;    return GET_PSR(env);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久精品| 一区二区三区四区中文字幕| 91福利小视频| 日韩av中文字幕一区二区三区| 欧美日韩亚洲综合在线| 99久久777色| 一级精品视频在线观看宜春院| 风间由美一区二区三区在线观看| 青青草国产精品亚洲专区无| 日本亚洲天堂网| 久久精品国产精品青草| 精品一区二区影视| 国产精品夜夜嗨| 国产成人精品影视| 色一情一伦一子一伦一区| 欧美日韩精品是欧美日韩精品| 欧美一区二区在线免费观看| 精品999在线播放| 国产精品日日摸夜夜摸av| 亚洲黄色性网站| 91亚洲精品久久久蜜桃网站| 波多野结衣亚洲一区| 99视频精品在线| 97se狠狠狠综合亚洲狠狠| 欧美美女网站色| 国产精品麻豆99久久久久久| 欧美aa在线视频| 日本精品一区二区三区四区的功能| 欧美日韩视频在线第一区| 久久亚洲私人国产精品va媚药| 亚洲欧美日韩国产成人精品影院| 欧美a级一区二区| 91福利视频网站| 亚洲欧美在线aaa| 久久99热这里只有精品| 色婷婷亚洲一区二区三区| 国产午夜精品一区二区三区嫩草| 午夜日韩在线观看| 日韩三级视频在线观看| 五月综合激情婷婷六月色窝| 国产做a爰片久久毛片| www激情久久| 久久精品国产亚洲aⅴ| 不卡高清视频专区| 亚洲特级片在线| 99r精品视频| 欧美综合色免费| 亚洲一区二区三区四区的| 99久久综合国产精品| 精品国产露脸精彩对白| 久久99国产精品尤物| 亚洲午夜成aⅴ人片| 成人激情av网| 日韩电影在线一区| 国产精品沙发午睡系列990531| 91丨国产丨九色丨pron| 九一九一国产精品| 精品成a人在线观看| 色婷婷综合久色| 国产精品资源站在线| 日本最新不卡在线| 国产精品久久久久久久久搜平片| 91视频在线观看免费| 国产精品91xxx| 午夜久久久影院| 亚洲精品国产a| 国产欧美日韩在线| www.亚洲色图| 成人国产电影网| 国产九色sp调教91| 日韩黄色免费网站| 欧美国产日韩a欧美在线观看| 日韩午夜激情电影| 3atv在线一区二区三区| 欧美人体做爰大胆视频| 欧美视频一区在线观看| 在线免费观看一区| 成人免费视频视频在线观看免费| 国产一区二区在线观看免费 | 亚洲精品videosex极品| 日韩欧美国产综合在线一区二区三区| 色女孩综合影院| 色综合天天性综合| 欧美综合欧美视频| 91精品国产欧美一区二区18| 91在线观看污| 欧美剧情片在线观看| 日韩区在线观看| 欧美高清在线视频| 中文字幕永久在线不卡| 久久久另类综合| 亚洲欧美国产毛片在线| 五月天视频一区| 国产精品一级二级三级| 日本大香伊一区二区三区| 成人av第一页| 欧美肥妇毛茸茸| 中文字幕在线播放不卡一区| 视频一区二区三区在线| 亚洲国产高清aⅴ视频| 亚洲综合色噜噜狠狠| 久久成人免费电影| 在线视频一区二区三区| 精品久久人人做人人爽| 亚洲国产精品天堂| 五月天中文字幕一区二区| 国产盗摄精品一区二区三区在线| 欧美日韩国产首页在线观看| 国产精品剧情在线亚洲| 综合久久久久久| 国产精品一色哟哟哟| 欧美一卡二卡在线| 亚洲一区二区三区免费视频| www.66久久| 中文字幕在线不卡| 午夜久久久久久| 欧美色网站导航| 亚洲欧美成aⅴ人在线观看| 成人性视频网站| 国产精品五月天| 亚洲成人免费av| 欧美久久久久久蜜桃| 亚洲一区二区免费视频| 精品视频一区 二区 三区| 一卡二卡三卡日韩欧美| 欧美中文字幕一二三区视频| 国产亚洲欧美激情| 大桥未久av一区二区三区中文| 精品成人一区二区三区| 国产成人av一区| 亚洲欧美一区二区视频| 处破女av一区二区| 国产欧美日韩麻豆91| 99久久综合色| 日韩激情视频在线观看| 精品日韩成人av| 成人午夜电影网站| 精品一区二区三区在线观看 | 国产成人免费视频一区| 精品国产乱码久久久久久久久| 成人一区在线观看| 亚洲va欧美va天堂v国产综合| 欧美一区二区在线免费观看| 粉嫩高潮美女一区二区三区| 亚洲另类一区二区| 欧美精品一区男女天堂| 成人一区二区三区中文字幕| 亚洲成av人片一区二区梦乃| 久久一留热品黄| 欧美性大战久久久| 成人激情免费视频| 精品一区二区三区影院在线午夜| 国产精品久久久久影院老司| 色婷婷久久久亚洲一区二区三区| 加勒比av一区二区| 午夜欧美在线一二页| 亚洲少妇中出一区| 亚洲国产精品av| 久久一区二区三区国产精品| 日韩一区二区三免费高清| 久久99热99| 蜜桃传媒麻豆第一区在线观看| 亚洲欧美日韩成人高清在线一区| 久久综合久久久久88| 欧美日本一道本在线视频| 91精彩视频在线| 亚洲成人自拍一区| 天天做天天摸天天爽国产一区| 最新中文字幕一区二区三区| 中文字幕不卡的av| 亚洲国产精品高清| 国产精品动漫网站| 中文字幕一区二区三区在线观看 | 久久超碰97人人做人人爱| 亚洲成人自拍网| 亚洲人成网站在线| 一区二区欧美国产| 亚洲国产日韩av| 蜜桃视频第一区免费观看| 久久国产三级精品| 国产精品综合网| 久久国产精品露脸对白| 国产在线视频不卡二| 99久久婷婷国产精品综合| 一本色道a无线码一区v| 91 com成人网| 国产蜜臀97一区二区三区| 亚洲国产高清不卡| 视频一区在线播放| 成人黄色大片在线观看| 日本韩国一区二区三区视频| 日韩小视频在线观看专区| 国产欧美视频一区二区| 亚洲福利一二三区| 亚洲国产一区二区视频| 成人一级黄色片| 精品久久一二三区| 三级不卡在线观看| 91麻豆国产福利在线观看| 亚洲精品在线观看网站|