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

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

?? vl.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
{    s->chr_read(s->handler_opaque, buf, len);}void qemu_chr_accept_input(CharDriverState *s){    if (s->chr_accept_input)        s->chr_accept_input(s);}void qemu_chr_printf(CharDriverState *s, const char *fmt, ...){    char buf[4096];    va_list ap;    va_start(ap, fmt);    vsnprintf(buf, sizeof(buf), fmt, ap);    qemu_chr_write(s, (uint8_t *)buf, strlen(buf));    va_end(ap);}void qemu_chr_send_event(CharDriverState *s, int event){    if (s->chr_send_event)        s->chr_send_event(s, event);}void qemu_chr_add_handlers(CharDriverState *s,                           IOCanRWHandler *fd_can_read,                           IOReadHandler *fd_read,                           IOEventHandler *fd_event,                           void *opaque){    s->chr_can_read = fd_can_read;    s->chr_read = fd_read;    s->chr_event = fd_event;    s->handler_opaque = opaque;    if (s->chr_update_read_handler)        s->chr_update_read_handler(s);}static int null_chr_write(CharDriverState *chr, const uint8_t *buf, int len){    return len;}static CharDriverState *qemu_chr_open_null(void){    CharDriverState *chr;    chr = qemu_mallocz(sizeof(CharDriverState));    if (!chr)        return NULL;    chr->chr_write = null_chr_write;    return chr;}/* MUX driver for serial I/O splitting */static int term_timestamps;static int64_t term_timestamps_start;#define MAX_MUX 4#define MUX_BUFFER_SIZE 32	/* Must be a power of 2.  */#define MUX_BUFFER_MASK (MUX_BUFFER_SIZE - 1)typedef struct {    IOCanRWHandler *chr_can_read[MAX_MUX];    IOReadHandler *chr_read[MAX_MUX];    IOEventHandler *chr_event[MAX_MUX];    void *ext_opaque[MAX_MUX];    CharDriverState *drv;    unsigned char buffer[MUX_BUFFER_SIZE];    int prod;    int cons;    int mux_cnt;    int term_got_escape;    int max_size;} MuxDriver;static int mux_chr_write(CharDriverState *chr, const uint8_t *buf, int len){    MuxDriver *d = chr->opaque;    int ret;    if (!term_timestamps) {        ret = d->drv->chr_write(d->drv, buf, len);    } else {        int i;        ret = 0;        for(i = 0; i < len; i++) {            ret += d->drv->chr_write(d->drv, buf+i, 1);            if (buf[i] == '\n') {                char buf1[64];                int64_t ti;                int secs;                ti = get_clock();                if (term_timestamps_start == -1)                    term_timestamps_start = ti;                ti -= term_timestamps_start;                secs = ti / 1000000000;                snprintf(buf1, sizeof(buf1),                         "[%02d:%02d:%02d.%03d] ",                         secs / 3600,                         (secs / 60) % 60,                         secs % 60,                         (int)((ti / 1000000) % 1000));                d->drv->chr_write(d->drv, (uint8_t *)buf1, strlen(buf1));            }        }    }    return ret;}static char *mux_help[] = {    "% h    print this help\n\r",    "% x    exit emulator\n\r",    "% s    save disk data back to file (if -snapshot)\n\r",    "% t    toggle console timestamps\n\r"    "% b    send break (magic sysrq)\n\r",    "% c    switch between console and monitor\n\r",    "% %  sends %\n\r",    NULL};static int term_escape_char = 0x01; /* ctrl-a is used for escape */static void mux_print_help(CharDriverState *chr){    int i, j;    char ebuf[15] = "Escape-Char";    char cbuf[50] = "\n\r";    if (term_escape_char > 0 && term_escape_char < 26) {        sprintf(cbuf,"\n\r");        sprintf(ebuf,"C-%c", term_escape_char - 1 + 'a');    } else {        sprintf(cbuf,"\n\rEscape-Char set to Ascii: 0x%02x\n\r\n\r",            term_escape_char);    }    chr->chr_write(chr, (uint8_t *)cbuf, strlen(cbuf));    for (i = 0; mux_help[i] != NULL; i++) {        for (j=0; mux_help[i][j] != '\0'; j++) {            if (mux_help[i][j] == '%')                chr->chr_write(chr, (uint8_t *)ebuf, strlen(ebuf));            else                chr->chr_write(chr, (uint8_t *)&mux_help[i][j], 1);        }    }}static int mux_proc_byte(CharDriverState *chr, MuxDriver *d, int ch){    if (d->term_got_escape) {        d->term_got_escape = 0;        if (ch == term_escape_char)            goto send_char;        switch(ch) {        case '?':        case 'h':            mux_print_help(chr);            break;        case 'x':            {                 char *term =  "QEMU: Terminated\n\r";                 chr->chr_write(chr,(uint8_t *)term,strlen(term));                 exit(0);                 break;            }        case 's':            {                int i;                for (i = 0; i < nb_drives; i++) {                        bdrv_commit(drives_table[i].bdrv);                }            }            break;        case 'b':            qemu_chr_event(chr, CHR_EVENT_BREAK);            break;        case 'c':            /* Switch to the next registered device */            chr->focus++;            if (chr->focus >= d->mux_cnt)                chr->focus = 0;            break;       case 't':           term_timestamps = !term_timestamps;           term_timestamps_start = -1;           break;        }    } else if (ch == term_escape_char) {        d->term_got_escape = 1;    } else {    send_char:        return 1;    }    return 0;}static void mux_chr_accept_input(CharDriverState *chr){    int m = chr->focus;    MuxDriver *d = chr->opaque;    while (d->prod != d->cons &&           d->chr_can_read[m] &&           d->chr_can_read[m](d->ext_opaque[m])) {        d->chr_read[m](d->ext_opaque[m],                       &d->buffer[d->cons++ & MUX_BUFFER_MASK], 1);    }}static int mux_chr_can_read(void *opaque){    CharDriverState *chr = opaque;    MuxDriver *d = chr->opaque;    if ((d->prod - d->cons) < MUX_BUFFER_SIZE)        return 1;    if (d->chr_can_read[chr->focus])        return d->chr_can_read[chr->focus](d->ext_opaque[chr->focus]);    return 0;}static void mux_chr_read(void *opaque, const uint8_t *buf, int size){    CharDriverState *chr = opaque;    MuxDriver *d = chr->opaque;    int m = chr->focus;    int i;    mux_chr_accept_input (opaque);    for(i = 0; i < size; i++)        if (mux_proc_byte(chr, d, buf[i])) {            if (d->prod == d->cons &&                d->chr_can_read[m] &&                d->chr_can_read[m](d->ext_opaque[m]))                d->chr_read[m](d->ext_opaque[m], &buf[i], 1);            else                d->buffer[d->prod++ & MUX_BUFFER_MASK] = buf[i];        }}static void mux_chr_event(void *opaque, int event){    CharDriverState *chr = opaque;    MuxDriver *d = chr->opaque;    int i;    /* Send the event to all registered listeners */    for (i = 0; i < d->mux_cnt; i++)        if (d->chr_event[i])            d->chr_event[i](d->ext_opaque[i], event);}static void mux_chr_update_read_handler(CharDriverState *chr){    MuxDriver *d = chr->opaque;    if (d->mux_cnt >= MAX_MUX) {        fprintf(stderr, "Cannot add I/O handlers, MUX array is full\n");        return;    }    d->ext_opaque[d->mux_cnt] = chr->handler_opaque;    d->chr_can_read[d->mux_cnt] = chr->chr_can_read;    d->chr_read[d->mux_cnt] = chr->chr_read;    d->chr_event[d->mux_cnt] = chr->chr_event;    /* Fix up the real driver with mux routines */    if (d->mux_cnt == 0) {        qemu_chr_add_handlers(d->drv, mux_chr_can_read, mux_chr_read,                              mux_chr_event, chr);    }    chr->focus = d->mux_cnt;    d->mux_cnt++;}static CharDriverState *qemu_chr_open_mux(CharDriverState *drv){    CharDriverState *chr;    MuxDriver *d;    chr = qemu_mallocz(sizeof(CharDriverState));    if (!chr)        return NULL;    d = qemu_mallocz(sizeof(MuxDriver));    if (!d) {        free(chr);        return NULL;    }    chr->opaque = d;    d->drv = drv;    chr->focus = -1;    chr->chr_write = mux_chr_write;    chr->chr_update_read_handler = mux_chr_update_read_handler;    chr->chr_accept_input = mux_chr_accept_input;    return chr;}#ifdef _WIN32static void socket_cleanup(void){    WSACleanup();}static int socket_init(void){    WSADATA Data;    int ret, err;    ret = WSAStartup(MAKEWORD(2,2), &Data);    if (ret != 0) {        err = WSAGetLastError();        fprintf(stderr, "WSAStartup: %d\n", err);        return -1;    }    atexit(socket_cleanup);    return 0;}static int send_all(int fd, const uint8_t *buf, int len1){    int ret, len;    len = len1;    while (len > 0) {        ret = send(fd, buf, len, 0);        if (ret < 0) {            int errno;            errno = WSAGetLastError();            if (errno != WSAEWOULDBLOCK) {                return -1;            }        } else if (ret == 0) {            break;        } else {            buf += ret;            len -= ret;        }    }    return len1 - len;}void socket_set_nonblock(int fd){    unsigned long opt = 1;    ioctlsocket(fd, FIONBIO, &opt);}#elsestatic int unix_write(int fd, const uint8_t *buf, int len1){    int ret, len;    len = len1;    while (len > 0) {        ret = write(fd, buf, len);        if (ret < 0) {            if (errno != EINTR && errno != EAGAIN)                return -1;        } else if (ret == 0) {            break;        } else {            buf += ret;            len -= ret;        }    }    return len1 - len;}static inline int send_all(int fd, const uint8_t *buf, int len1){    return unix_write(fd, buf, len1);}void socket_set_nonblock(int fd){    fcntl(fd, F_SETFL, O_NONBLOCK);}#endif /* !_WIN32 */#ifndef _WIN32typedef struct {    int fd_in, fd_out;    int max_size;} FDCharDriver;#define STDIO_MAX_CLIENTS 1static int stdio_nb_clients = 0;static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len){    FDCharDriver *s = chr->opaque;    return unix_write(s->fd_out, buf, len);}static int fd_chr_read_poll(void *opaque){    CharDriverState *chr = opaque;    FDCharDriver *s = chr->opaque;    s->max_size = qemu_chr_can_read(chr);    return s->max_size;}static void fd_chr_read(void *opaque){    CharDriverState *chr = opaque;    FDCharDriver *s = chr->opaque;    int size, len;    uint8_t buf[1024];    len = sizeof(buf);    if (len > s->max_size)        len = s->max_size;    if (len == 0)        return;    size = read(s->fd_in, buf, len);    if (size == 0) {        /* FD has been closed. Remove it from the active list.  */        qemu_set_fd_handler2(s->fd_in, NULL, NULL, NULL, NULL);        return;    }    if (size > 0) {        qemu_chr_read(chr, buf, size);    }}static void fd_chr_update_read_handler(CharDriverState *chr){    FDCharDriver *s = chr->opaque;    if (s->fd_in >= 0) {        if (nographic && s->fd_in == 0) {        } else {            qemu_set_fd_handler2(s->fd_in, fd_chr_read_poll,                                 fd_chr_read, NULL, chr);        }    }}/* open a character device to a unix fd */static CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out){    CharDriverState *chr;    FDCharDriver *s;    chr = qemu_mallocz(sizeof(CharDriverState));    if (!chr)        return NULL;    s = qemu_mallocz(sizeof(FDCharDriver));    if (!s) {        free(chr);        return NULL;    }    s->fd_in = fd_in;    s->fd_out = fd_out;    chr->opaque = s;    chr->chr_write = fd_chr_write;    chr->chr_update_read_handler = fd_chr_update_read_handler;    qemu_chr_reset(chr);    return chr;}static CharDriverState *qemu_chr_open_file_out(const char *file_out){    int fd_out;    TFR(fd_out = open(file_out, O_WRONLY | O_TRUNC | O_CREAT | O_BINARY, 0666));    if (fd_out < 0)        return NULL;    return qemu_chr_open_fd(-1, fd_out);}static CharDriverState *qemu_chr_open_pipe(const char *filename){    int fd_in, fd_out;    char filename_in[256], filename_out[256];    snprintf(filename_in, 256, "%s.in", filename);    snprintf(filename_out, 256, "%s.out", filename);    TFR(fd_in = open(filename_in, O_RDWR | O_BINARY));    TFR(fd_out = open(filename_out, O_RDWR | O_BINARY));    if (fd_in < 0 || fd_out < 0) {	if (fd_in >= 0)	    close(fd_in);	if (fd_out >= 0)	    close(fd_out);        TFR(fd_in = fd_out = open(filename, O_RDWR | O_BINARY));        if (fd_in < 0)            return NULL;    }    return qemu_chr_open_fd(fd_in, fd_out);}/* for STDIO, we handle the case where several clients use it   (nographic mode) */#define TERM_FIFO_MAX_SIZE 1static uint8_t term_fifo[TERM_FIFO_MAX_SIZE];static int term_fifo_size;static int stdio_read_poll(void *opaque){    CharDriverState *chr = opaque;    /* try to flush the queue if needed */    if (term_fifo_size != 0 && qemu_chr_can_read(chr) > 0) {        qemu_chr_read(chr, term_fifo, 1);        term_fifo_size = 0;    }    /* see if we can absorb more chars */    if (term_fifo_size == 0)        return 1;    else        return 0;}static void stdio_read(void *opaque){    int size;    uint8_t buf[1];    CharDriverState *chr = opaque;    size = read(0, buf, 1);    if (size == 0) {        /* stdin has been closed. Remove it from the active list.  */        qemu_set_fd_handler2(0, NULL, NULL, NULL, NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品久久久午夜一区二区三区| 欧美在线免费观看视频| 亚洲一区二区视频在线| 精品国产髙清在线看国产毛片| 不卡视频一二三四| 久久99国产精品免费| 成人欧美一区二区三区小说| 久久奇米777| 在线播放视频一区| 一本在线高清不卡dvd| 国产成人精品三级| 毛片av一区二区三区| 香港成人在线视频| 日韩av一二三| 国产精品二三区| 成人免费高清在线| 黄色资源网久久资源365| 亚洲第一福利一区| 亚洲精选在线视频| 国产精品女人毛片| 久久久久久久电影| 欧美mv日韩mv亚洲| 制服丝袜亚洲播放| 欧美日韩免费不卡视频一区二区三区| 一本色道久久综合亚洲精品按摩| 国产馆精品极品| 极品美女销魂一区二区三区| 日韩精品电影在线| 亚洲成人一二三| 亚洲国产中文字幕| 亚洲一区av在线| 亚洲一区在线电影| 亚洲第一在线综合网站| 亚洲激情男女视频| 亚洲精品成人少妇| 亚洲乱码中文字幕| 亚洲日本在线看| 最新热久久免费视频| 中文字幕制服丝袜一区二区三区| 蜜桃视频免费观看一区| 裸体健美xxxx欧美裸体表演| 亚洲成人福利片| 香蕉av福利精品导航| 日韩精品1区2区3区| 日本亚洲电影天堂| 日本成人在线不卡视频| 蜜桃视频在线一区| 激情小说亚洲一区| 成人深夜视频在线观看| 91在线观看美女| 91久久国产综合久久| 欧美日韩电影在线| 日韩精品中文字幕一区| 欧美xxxxx裸体时装秀| 久久精品在这里| 中文字幕一区二区三区在线播放 | **性色生活片久久毛片| 亚洲免费在线观看| 午夜精品久久久久久久蜜桃app| 亚洲成av人在线观看| 青青国产91久久久久久| 韩日av一区二区| 成人黄色电影在线 | 蜜臀av在线播放一区二区三区| 九色porny丨国产精品| 国产精品一级在线| 一本久道久久综合中文字幕| 欧美日韩精品欧美日韩精品一| 91精品国产综合久久精品app| 日韩精品最新网址| 国产精品拍天天在线| 亚洲午夜视频在线观看| 久久国产日韩欧美精品| 99久久伊人精品| 日韩一区二区在线看片| 日本一区二区三区四区在线视频 | 欧美日韩在线综合| 精品久久久久久亚洲综合网 | 日韩欧美一区二区视频| 欧美高清在线精品一区| 污片在线观看一区二区| 国产成人福利片| 欧美日韩一区不卡| 亚洲国产精品精华液ab| 亚洲一二三区视频在线观看| 久久国产精品色| 91久久国产最好的精华液| 久久先锋影音av鲁色资源| 一区二区三区在线视频播放| 精品综合久久久久久8888| 91麻豆6部合集magnet| 欧美成人女星排名| 亚洲精品成人a在线观看| 国产尤物一区二区| 欧美精品高清视频| 国产精品电影一区二区三区| 美女一区二区在线观看| 91久久精品一区二区三区| 久久久青草青青国产亚洲免观| 亚洲成人一区二区在线观看| 国产99精品在线观看| 欧美大片顶级少妇| 亚洲国产cao| 一本色道久久加勒比精品| 久久女同性恋中文字幕| 日韩 欧美一区二区三区| www.欧美.com| 久久久777精品电影网影网 | 99久久久精品| 久久理论电影网| 青青国产91久久久久久| 欧美日韩国产综合久久| 国产精品成人在线观看| 国产一区二区剧情av在线| 91精品久久久久久久91蜜桃| 一区二区欧美精品| 91丨九色丨蝌蚪富婆spa| 国产农村妇女精品| 韩国一区二区三区| 日韩欧美色综合| 天堂精品中文字幕在线| 欧洲色大大久久| 亚洲乱码精品一二三四区日韩在线| 国产91丝袜在线18| 国产亚洲精久久久久久| 国产美女一区二区| 久久美女高清视频| 国产一区二三区好的| 精品女同一区二区| 另类小说欧美激情| 欧美sm极限捆绑bd| 国产真实乱偷精品视频免| 日韩欧美你懂的| 久久99国产乱子伦精品免费| 日韩欧美一级片| 精品一区二区三区在线观看国产| 欧美一区二区啪啪| 精品一区二区日韩| 久久人人爽爽爽人久久久| 国产一区二区美女诱惑| 国产欧美一区二区精品性色 | 欧美精品一区二| 久草热8精品视频在线观看| 久久在线免费观看| 国产精品亚洲成人| 国产精品理伦片| 色婷婷亚洲精品| 午夜精品爽啪视频| 69久久99精品久久久久婷婷| 91丨porny丨在线| 亚洲一区二区3| 欧美一区二区在线不卡| 精品一区二区国语对白| 国产亚洲欧美一级| 91美女精品福利| 日韩精品乱码免费| 久久久www成人免费无遮挡大片| 成人亚洲精品久久久久软件| 中文字幕一区免费在线观看| 欧美色窝79yyyycom| 日本成人中文字幕在线视频 | 亚洲欧洲美洲综合色网| 色婷婷精品久久二区二区蜜臀av| 亚洲图片欧美综合| 精品对白一区国产伦| 成人免费毛片aaaaa**| 亚洲制服欧美中文字幕中文字幕| 7777女厕盗摄久久久| 国产一区二区剧情av在线| 日韩伦理免费电影| 欧美日韩国产大片| 国产真实乱对白精彩久久| 亚洲三级在线观看| 日韩色在线观看| 不卡在线观看av| 日韩制服丝袜先锋影音| 欧美国产一区视频在线观看| 欧美中文字幕一区二区三区 | 久久精品国产**网站演员| 国产日韩欧美亚洲| 欧美日韩在线三级| 国产**成人网毛片九色 | 91激情在线视频| 久久成人综合网| 亚洲女厕所小便bbb| 日韩一区二区在线观看| 97精品电影院| 麻豆精品在线观看| 亚洲精品视频自拍| 久久蜜桃av一区二区天堂| 欧美午夜电影在线播放| 国产盗摄精品一区二区三区在线 | 亚洲国产精品久久久久婷婷884 | 日韩激情视频网站| 亚洲天堂av一区| 久久众筹精品私拍模特| 欧美精品xxxxbbbb| 91丨porny丨国产入口| 国产精品资源网站| 水野朝阳av一区二区三区|