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

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

?? monitor.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
static void term_printc(int c){    term_printf("'");    switch(c) {    case '\'':        term_printf("\\'");        break;    case '\\':        term_printf("\\\\");        break;    case '\n':        term_printf("\\n");        break;    case '\r':        term_printf("\\r");        break;    default:        if (c >= 32 && c <= 126) {            term_printf("%c", c);        } else {            term_printf("\\x%02x", c);        }        break;    }    term_printf("'");}static void memory_dump(int count, int format, int wsize,                        target_phys_addr_t addr, int is_physical){    CPUState *env;    int nb_per_line, l, line_size, i, max_digits, len;    uint8_t buf[16];    uint64_t v;    if (format == 'i') {        int flags;        flags = 0;        env = mon_get_cpu();        if (!env && !is_physical)            return;#ifdef TARGET_I386        if (wsize == 2) {            flags = 1;        } else if (wsize == 4) {            flags = 0;        } else {            /* as default we use the current CS size */            flags = 0;            if (env) {#ifdef TARGET_X86_64                if ((env->efer & MSR_EFER_LMA) &&                    (env->segs[R_CS].flags & DESC_L_MASK))                    flags = 2;                else#endif                if (!(env->segs[R_CS].flags & DESC_B_MASK))                    flags = 1;            }        }#endif        monitor_disas(env, addr, count, is_physical, flags);        return;    }    len = wsize * count;    if (wsize == 1)        line_size = 8;    else        line_size = 16;    nb_per_line = line_size / wsize;    max_digits = 0;    switch(format) {    case 'o':        max_digits = (wsize * 8 + 2) / 3;        break;    default:    case 'x':        max_digits = (wsize * 8) / 4;        break;    case 'u':    case 'd':        max_digits = (wsize * 8 * 10 + 32) / 33;        break;    case 'c':        wsize = 1;        break;    }    while (len > 0) {        if (is_physical)            term_printf(TARGET_FMT_plx ":", addr);        else            term_printf(TARGET_FMT_lx ":", (target_ulong)addr);        l = len;        if (l > line_size)            l = line_size;        if (is_physical) {            cpu_physical_memory_rw(addr, buf, l, 0);        } else {            env = mon_get_cpu();            if (!env)                break;            cpu_memory_rw_debug(env, addr, buf, l, 0);        }        i = 0;        while (i < l) {            switch(wsize) {            default:            case 1:                v = ldub_raw(buf + i);                break;            case 2:                v = lduw_raw(buf + i);                break;            case 4:                v = (uint32_t)ldl_raw(buf + i);                break;            case 8:                v = ldq_raw(buf + i);                break;            }            term_printf(" ");            switch(format) {            case 'o':                term_printf("%#*" PRIo64, max_digits, v);                break;            case 'x':                term_printf("0x%0*" PRIx64, max_digits, v);                break;            case 'u':                term_printf("%*" PRIu64, max_digits, v);                break;            case 'd':                term_printf("%*" PRId64, max_digits, v);                break;            case 'c':                term_printc(v);                break;            }            i += wsize;        }        term_printf("\n");        addr += l;        len -= l;    }}#if TARGET_LONG_BITS == 64#define GET_TLONG(h, l) (((uint64_t)(h) << 32) | (l))#else#define GET_TLONG(h, l) (l)#endifstatic void do_memory_dump(int count, int format, int size,                           uint32_t addrh, uint32_t addrl){    target_long addr = GET_TLONG(addrh, addrl);    memory_dump(count, format, size, addr, 0);}#if TARGET_PHYS_ADDR_BITS > 32#define GET_TPHYSADDR(h, l) (((uint64_t)(h) << 32) | (l))#else#define GET_TPHYSADDR(h, l) (l)#endifstatic void do_physical_memory_dump(int count, int format, int size,                                    uint32_t addrh, uint32_t addrl){    target_phys_addr_t addr = GET_TPHYSADDR(addrh, addrl);    memory_dump(count, format, size, addr, 1);}static void do_print(int count, int format, int size, unsigned int valh, unsigned int vall){    target_phys_addr_t val = GET_TPHYSADDR(valh, vall);#if TARGET_PHYS_ADDR_BITS == 32    switch(format) {    case 'o':        term_printf("%#o", val);        break;    case 'x':        term_printf("%#x", val);        break;    case 'u':        term_printf("%u", val);        break;    default:    case 'd':        term_printf("%d", val);        break;    case 'c':        term_printc(val);        break;    }#else    switch(format) {    case 'o':        term_printf("%#" PRIo64, val);        break;    case 'x':        term_printf("%#" PRIx64, val);        break;    case 'u':        term_printf("%" PRIu64, val);        break;    default:    case 'd':        term_printf("%" PRId64, val);        break;    case 'c':        term_printc(val);        break;    }#endif    term_printf("\n");}static void do_memory_save(unsigned int valh, unsigned int vall,                           uint32_t size, const char *filename){    FILE *f;    target_long addr = GET_TLONG(valh, vall);    uint32_t l;    CPUState *env;    uint8_t buf[1024];    env = mon_get_cpu();    if (!env)        return;    f = fopen(filename, "wb");    if (!f) {        term_printf("could not open '%s'\n", filename);        return;    }    while (size != 0) {        l = sizeof(buf);        if (l > size)            l = size;        cpu_memory_rw_debug(env, addr, buf, l, 0);        fwrite(buf, 1, l, f);        addr += l;        size -= l;    }    fclose(f);}static void do_sum(uint32_t start, uint32_t size){    uint32_t addr;    uint8_t buf[1];    uint16_t sum;    sum = 0;    for(addr = start; addr < (start + size); addr++) {        cpu_physical_memory_rw(addr, buf, 1, 0);        /* BSD sum algorithm ('sum' Unix command) */        sum = (sum >> 1) | (sum << 15);        sum += buf[0];    }    term_printf("%05d\n", sum);}typedef struct {    int keycode;    const char *name;} KeyDef;static const KeyDef key_defs[] = {    { 0x2a, "shift" },    { 0x36, "shift_r" },    { 0x38, "alt" },    { 0xb8, "alt_r" },    { 0x1d, "ctrl" },    { 0x9d, "ctrl_r" },    { 0xdd, "menu" },    { 0x01, "esc" },    { 0x02, "1" },    { 0x03, "2" },    { 0x04, "3" },    { 0x05, "4" },    { 0x06, "5" },    { 0x07, "6" },    { 0x08, "7" },    { 0x09, "8" },    { 0x0a, "9" },    { 0x0b, "0" },    { 0x0c, "minus" },    { 0x0d, "equal" },    { 0x0e, "backspace" },    { 0x0f, "tab" },    { 0x10, "q" },    { 0x11, "w" },    { 0x12, "e" },    { 0x13, "r" },    { 0x14, "t" },    { 0x15, "y" },    { 0x16, "u" },    { 0x17, "i" },    { 0x18, "o" },    { 0x19, "p" },    { 0x1c, "ret" },    { 0x1e, "a" },    { 0x1f, "s" },    { 0x20, "d" },    { 0x21, "f" },    { 0x22, "g" },    { 0x23, "h" },    { 0x24, "j" },    { 0x25, "k" },    { 0x26, "l" },    { 0x2c, "z" },    { 0x2d, "x" },    { 0x2e, "c" },    { 0x2f, "v" },    { 0x30, "b" },    { 0x31, "n" },    { 0x32, "m" },    { 0x39, "spc" },    { 0x3a, "caps_lock" },    { 0x3b, "f1" },    { 0x3c, "f2" },    { 0x3d, "f3" },    { 0x3e, "f4" },    { 0x3f, "f5" },    { 0x40, "f6" },    { 0x41, "f7" },    { 0x42, "f8" },    { 0x43, "f9" },    { 0x44, "f10" },    { 0x45, "num_lock" },    { 0x46, "scroll_lock" },    { 0xb5, "kp_divide" },    { 0x37, "kp_multiply" },    { 0x4a, "kp_subtract" },    { 0x4e, "kp_add" },    { 0x9c, "kp_enter" },    { 0x53, "kp_decimal" },    { 0x52, "kp_0" },    { 0x4f, "kp_1" },    { 0x50, "kp_2" },    { 0x51, "kp_3" },    { 0x4b, "kp_4" },    { 0x4c, "kp_5" },    { 0x4d, "kp_6" },    { 0x47, "kp_7" },    { 0x48, "kp_8" },    { 0x49, "kp_9" },    { 0x56, "<" },    { 0x57, "f11" },    { 0x58, "f12" },    { 0xb7, "print" },    { 0xc7, "home" },    { 0xc9, "pgup" },    { 0xd1, "pgdn" },    { 0xcf, "end" },    { 0xcb, "left" },    { 0xc8, "up" },    { 0xd0, "down" },    { 0xcd, "right" },    { 0xd2, "insert" },    { 0xd3, "delete" },    { 0, NULL },};static int get_keycode(const char *key){    const KeyDef *p;    char *endp;    int ret;    for(p = key_defs; p->name != NULL; p++) {        if (!strcmp(key, p->name))            return p->keycode;    }    if (strstart(key, "0x", NULL)) {        ret = strtoul(key, &endp, 0);        if (*endp == '\0' && ret >= 0x01 && ret <= 0xff)            return ret;    }    return -1;}static void do_send_key(const char *string){    char keybuf[16], *q;    uint8_t keycodes[16];    const char *p;    int nb_keycodes, keycode, i;    nb_keycodes = 0;    p = string;    while (*p != '\0') {        q = keybuf;        while (*p != '\0' && *p != '-') {            if ((q - keybuf) < sizeof(keybuf) - 1) {                *q++ = *p;            }            p++;        }        *q = '\0';        keycode = get_keycode(keybuf);        if (keycode < 0) {            term_printf("unknown key: '%s'\n", keybuf);            return;        }        keycodes[nb_keycodes++] = keycode;        if (*p == '\0')            break;        p++;    }    /* key down events */    for(i = 0; i < nb_keycodes; i++) {        keycode = keycodes[i];        if (keycode & 0x80)            kbd_put_keycode(0xe0);        kbd_put_keycode(keycode & 0x7f);    }    /* key up events */    for(i = nb_keycodes - 1; i >= 0; i--) {        keycode = keycodes[i];        if (keycode & 0x80)            kbd_put_keycode(0xe0);        kbd_put_keycode(keycode | 0x80);    }}static int mouse_button_state;static void do_mouse_move(const char *dx_str, const char *dy_str,                          const char *dz_str){    int dx, dy, dz;    dx = strtol(dx_str, NULL, 0);    dy = strtol(dy_str, NULL, 0);    dz = 0;    if (dz_str)        dz = strtol(dz_str, NULL, 0);    kbd_mouse_event(dx, dy, dz, mouse_button_state);}static void do_mouse_button(int button_state){    mouse_button_state = button_state;    kbd_mouse_event(0, 0, 0, mouse_button_state);}static void do_ioport_read(int count, int format, int size, int addr, int has_index, int index){    uint32_t val;    int suffix;    if (has_index) {        cpu_outb(NULL, addr & 0xffff, index & 0xff);        addr++;    }    addr &= 0xffff;    switch(size) {    default:    case 1:        val = cpu_inb(NULL, addr);        suffix = 'b';        break;    case 2:        val = cpu_inw(NULL, addr);        suffix = 'w';        break;    case 4:        val = cpu_inl(NULL, addr);        suffix = 'l';        break;    }    term_printf("port%c[0x%04x] = %#0*x\n",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va精品| 91丨九色丨蝌蚪富婆spa| 视频一区欧美精品| 亚洲精品久久久蜜桃| 成人免费一区二区三区视频| 国产欧美日韩中文久久| 久久综合狠狠综合久久激情 | 日韩精品一区二区三区在线观看 | 国产酒店精品激情| 精品一区二区三区不卡| 麻豆国产精品777777在线| 欧美bbbbb| 国模一区二区三区白浆| 久久91精品国产91久久小草| 精品一区二区免费在线观看| 国产成人一区在线| 99久久精品国产精品久久| 91美女片黄在线| 欧美制服丝袜第一页| 在线综合+亚洲+欧美中文字幕| 制服丝袜亚洲色图| 日韩美女在线视频| 久久久精品2019中文字幕之3| 国产色产综合产在线视频| 一色桃子久久精品亚洲| 亚洲激情六月丁香| 日本美女一区二区| 国产成人一区在线| 在线视频中文字幕一区二区| 7777精品伊人久久久大香线蕉 | 国产原创一区二区| 成人免费高清视频| 在线观看视频欧美| 欧美一级国产精品| 亚洲国产精品精华液ab| 亚洲精品一二三| 日本午夜精品一区二区三区电影| 国产一区福利在线| 色综合色综合色综合 | 日韩影院免费视频| 激情综合网天天干| 日本精品一级二级| 日韩精品一区二区三区蜜臀| 欧美国产一区二区| 亚洲成av人在线观看| 激情五月婷婷综合网| 99久久国产综合精品女不卡| 日韩一区二区电影网| 国产精品―色哟哟| 婷婷夜色潮精品综合在线| 国产精品一区二区不卡| 欧美婷婷六月丁香综合色| 久久久久久一二三区| 一区二区成人在线| 精品一区二区三区香蕉蜜桃| 91福利区一区二区三区| 亚洲精品在线三区| 亚洲婷婷综合色高清在线| 奇米四色…亚洲| 99精品久久只有精品| 欧美videos中文字幕| 亚洲精品中文在线| 国产黄色精品网站| 这里只有精品免费| 亚洲日本一区二区三区| 久久www免费人成看片高清| 91在线视频18| 久久综合精品国产一区二区三区| 亚洲一二三区不卡| 波多野结衣中文一区| 欧美刺激脚交jootjob| 亚洲一区二区三区美女| 国产99久久久久久免费看农村| 欧美区视频在线观看| 亚洲欧美一区二区三区国产精品| 韩国精品久久久| 欧美亚州韩日在线看免费版国语版| 亚洲精品在线一区二区| 日本女优在线视频一区二区| 欧美色偷偷大香| 中文字幕字幕中文在线中不卡视频| 精品一区二区在线播放| 777色狠狠一区二区三区| 一区在线观看免费| 国产成人精品免费视频网站| 精品国产91九色蝌蚪| 日本视频在线一区| 欧美日韩一二三区| 亚洲国产一区二区三区| 色偷偷一区二区三区| 中文字幕免费观看一区| 国产成人精品免费网站| 久久久夜色精品亚洲| 久久99国产乱子伦精品免费| 欧美人xxxx| 五月婷婷激情综合网| 欧美少妇xxx| 亚洲一区二区3| 欧美日韩视频专区在线播放| 亚洲激情av在线| 在线观看亚洲精品视频| 亚洲一区在线观看视频| 欧美性猛片xxxx免费看久爱| 一区二区三区.www| 91高清在线观看| 亚洲国产毛片aaaaa无费看| 色婷婷综合久色| 一区二区三区成人| 欧美日韩国产a| 亚洲gay无套男同| 69堂精品视频| 美女国产一区二区三区| 欧美成人vps| 国产成人精品影视| 中文字幕一区二区三区视频| 91小视频在线| 亚洲女同一区二区| 欧美专区日韩专区| 五月激情丁香一区二区三区| 91精品国产高清一区二区三区蜜臀| 六月丁香综合在线视频| 久久这里都是精品| 成人看片黄a免费看在线| 中文字幕精品一区二区精品绿巨人| 成人福利视频网站| 尤物av一区二区| 欧美日韩国产高清一区二区三区| 麻豆成人免费电影| 久久精品人人做人人爽人人| www.亚洲精品| 亚洲va韩国va欧美va| 日韩免费一区二区| 丰满白嫩尤物一区二区| 一区二区三区在线视频免费| 欧美电影影音先锋| 国产精品一区二区男女羞羞无遮挡| 国产精品国产三级国产普通话99| 色欧美乱欧美15图片| 丝袜美腿亚洲一区二区图片| 2021久久国产精品不只是精品| 成人一区在线观看| 亚洲自拍都市欧美小说| 日韩欧美一级二级三级久久久| 国产凹凸在线观看一区二区| 亚洲精品乱码久久久久久久久| 欧美一区二区三区免费观看视频| 国产电影一区二区三区| 一区二区三区四区在线免费观看| 欧美精品18+| 成人午夜精品在线| 性感美女极品91精品| 亚洲国产精品99久久久久久久久| 欧美中文字幕一区| 国产一区二区影院| 一级女性全黄久久生活片免费| 精品国内二区三区| 色综合久久天天| 国内精品久久久久影院色| 一区二区在线免费| 久久综合九色欧美综合狠狠| 欧美又粗又大又爽| 国产高清视频一区| 五月激情综合婷婷| 亚洲欧美色一区| 久久一二三国产| 欧美猛男超大videosgay| 成人免费av资源| 蜜臀av一区二区在线免费观看| 成人免费在线视频观看| 欧美成人女星排名| 欧美日韩久久久| 99久久精品免费精品国产| 极品少妇xxxx精品少妇偷拍| 亚洲影院在线观看| 中文一区二区完整视频在线观看| 在线播放一区二区三区| 92精品国产成人观看免费| 国产在线视频精品一区| 视频一区欧美精品| 亚洲一级二级三级在线免费观看| 国产精品蜜臀av| 久久新电视剧免费观看| 欧美久久久久久久久| 91一区一区三区| 成人性生交大片免费看中文网站| 蜜臀精品一区二区三区在线观看 | 色婷婷精品久久二区二区蜜臂av | 久久精品日产第一区二区三区高清版 | 26uuu亚洲综合色欧美| 51午夜精品国产| 欧美性淫爽ww久久久久无| 不卡的av电影| 国产高清在线观看免费不卡| 国产一区二区三区在线看麻豆| 日韩综合小视频| 亚洲图片一区二区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品丝袜91| 国产亚洲一区二区三区在线观看 | 中文字幕亚洲成人|