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

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

?? pxa2xx.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
        case CPPMN3:            return;        }        /* Fall through */    default:        printf("%s: Bad register 0x%x\n", __FUNCTION__, reg);        break;    }}#define MDCNFG		0x00	/* SDRAM Configuration register */#define MDREFR		0x04	/* SDRAM Refresh Control register */#define MSC0		0x08	/* Static Memory Control register 0 */#define MSC1		0x0c	/* Static Memory Control register 1 */#define MSC2		0x10	/* Static Memory Control register 2 */#define MECR		0x14	/* Expansion Memory Bus Config register */#define SXCNFG		0x1c	/* Synchronous Static Memory Config register */#define MCMEM0		0x28	/* PC Card Memory Socket 0 Timing register */#define MCMEM1		0x2c	/* PC Card Memory Socket 1 Timing register */#define MCATT0		0x30	/* PC Card Attribute Socket 0 register */#define MCATT1		0x34	/* PC Card Attribute Socket 1 register */#define MCIO0		0x38	/* PC Card I/O Socket 0 Timing register */#define MCIO1		0x3c	/* PC Card I/O Socket 1 Timing register */#define MDMRS		0x40	/* SDRAM Mode Register Set Config register */#define BOOT_DEF	0x44	/* Boot-time Default Configuration register */#define ARB_CNTL	0x48	/* Arbiter Control register */#define BSCNTR0		0x4c	/* Memory Buffer Strength Control register 0 */#define BSCNTR1		0x50	/* Memory Buffer Strength Control register 1 */#define LCDBSCNTR	0x54	/* LCD Buffer Strength Control register */#define MDMRSLP		0x58	/* Low Power SDRAM Mode Set Config register */#define BSCNTR2		0x5c	/* Memory Buffer Strength Control register 2 */#define BSCNTR3		0x60	/* Memory Buffer Strength Control register 3 */#define SA1110		0x64	/* SA-1110 Memory Compatibility register */static uint32_t pxa2xx_mm_read(void *opaque, target_phys_addr_t addr){    struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;    addr -= s->mm_base;    switch (addr) {    case MDCNFG ... SA1110:        if ((addr & 3) == 0)            return s->mm_regs[addr >> 2];    default:        printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr);        break;    }    return 0;}static void pxa2xx_mm_write(void *opaque, target_phys_addr_t addr,                uint32_t value){    struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;    addr -= s->mm_base;    switch (addr) {    case MDCNFG ... SA1110:        if ((addr & 3) == 0) {            s->mm_regs[addr >> 2] = value;            break;        }    default:        printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr);        break;    }}static CPUReadMemoryFunc *pxa2xx_mm_readfn[] = {    pxa2xx_mm_read,    pxa2xx_mm_read,    pxa2xx_mm_read,};static CPUWriteMemoryFunc *pxa2xx_mm_writefn[] = {    pxa2xx_mm_write,    pxa2xx_mm_write,    pxa2xx_mm_write,};static void pxa2xx_mm_save(QEMUFile *f, void *opaque){    struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;    int i;    for (i = 0; i < 0x1a; i ++)        qemu_put_be32s(f, &s->mm_regs[i]);}static int pxa2xx_mm_load(QEMUFile *f, void *opaque, int version_id){    struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;    int i;    for (i = 0; i < 0x1a; i ++)        qemu_get_be32s(f, &s->mm_regs[i]);    return 0;}/* Synchronous Serial Ports */struct pxa2xx_ssp_s {    target_phys_addr_t base;    qemu_irq irq;    int enable;    uint32_t sscr[2];    uint32_t sspsp;    uint32_t ssto;    uint32_t ssitr;    uint32_t sssr;    uint8_t sstsa;    uint8_t ssrsa;    uint8_t ssacd;    uint32_t rx_fifo[16];    int rx_level;    int rx_start;    uint32_t (*readfn)(void *opaque);    void (*writefn)(void *opaque, uint32_t value);    void *opaque;};#define SSCR0	0x00	/* SSP Control register 0 */#define SSCR1	0x04	/* SSP Control register 1 */#define SSSR	0x08	/* SSP Status register */#define SSITR	0x0c	/* SSP Interrupt Test register */#define SSDR	0x10	/* SSP Data register */#define SSTO	0x28	/* SSP Time-Out register */#define SSPSP	0x2c	/* SSP Programmable Serial Protocol register */#define SSTSA	0x30	/* SSP TX Time Slot Active register */#define SSRSA	0x34	/* SSP RX Time Slot Active register */#define SSTSS	0x38	/* SSP Time Slot Status register */#define SSACD	0x3c	/* SSP Audio Clock Divider register *//* Bitfields for above registers */#define SSCR0_SPI(x)	(((x) & 0x30) == 0x00)#define SSCR0_SSP(x)	(((x) & 0x30) == 0x10)#define SSCR0_UWIRE(x)	(((x) & 0x30) == 0x20)#define SSCR0_PSP(x)	(((x) & 0x30) == 0x30)#define SSCR0_SSE	(1 << 7)#define SSCR0_RIM	(1 << 22)#define SSCR0_TIM	(1 << 23)#define SSCR0_MOD	(1 << 31)#define SSCR0_DSS(x)	(((((x) >> 16) & 0x10) | ((x) & 0xf)) + 1)#define SSCR1_RIE	(1 << 0)#define SSCR1_TIE	(1 << 1)#define SSCR1_LBM	(1 << 2)#define SSCR1_MWDS	(1 << 5)#define SSCR1_TFT(x)	((((x) >> 6) & 0xf) + 1)#define SSCR1_RFT(x)	((((x) >> 10) & 0xf) + 1)#define SSCR1_EFWR	(1 << 14)#define SSCR1_PINTE	(1 << 18)#define SSCR1_TINTE	(1 << 19)#define SSCR1_RSRE	(1 << 20)#define SSCR1_TSRE	(1 << 21)#define SSCR1_EBCEI	(1 << 29)#define SSITR_INT	(7 << 5)#define SSSR_TNF	(1 << 2)#define SSSR_RNE	(1 << 3)#define SSSR_TFS	(1 << 5)#define SSSR_RFS	(1 << 6)#define SSSR_ROR	(1 << 7)#define SSSR_PINT	(1 << 18)#define SSSR_TINT	(1 << 19)#define SSSR_EOC	(1 << 20)#define SSSR_TUR	(1 << 21)#define SSSR_BCE	(1 << 23)#define SSSR_RW		0x00bc0080static void pxa2xx_ssp_int_update(struct pxa2xx_ssp_s *s){    int level = 0;    level |= s->ssitr & SSITR_INT;    level |= (s->sssr & SSSR_BCE)  &&  (s->sscr[1] & SSCR1_EBCEI);    level |= (s->sssr & SSSR_TUR)  && !(s->sscr[0] & SSCR0_TIM);    level |= (s->sssr & SSSR_EOC)  &&  (s->sssr & (SSSR_TINT | SSSR_PINT));    level |= (s->sssr & SSSR_TINT) &&  (s->sscr[1] & SSCR1_TINTE);    level |= (s->sssr & SSSR_PINT) &&  (s->sscr[1] & SSCR1_PINTE);    level |= (s->sssr & SSSR_ROR)  && !(s->sscr[0] & SSCR0_RIM);    level |= (s->sssr & SSSR_RFS)  &&  (s->sscr[1] & SSCR1_RIE);    level |= (s->sssr & SSSR_TFS)  &&  (s->sscr[1] & SSCR1_TIE);    qemu_set_irq(s->irq, !!level);}static void pxa2xx_ssp_fifo_update(struct pxa2xx_ssp_s *s){    s->sssr &= ~(0xf << 12);	/* Clear RFL */    s->sssr &= ~(0xf << 8);	/* Clear TFL */    s->sssr &= ~SSSR_TNF;    if (s->enable) {        s->sssr |= ((s->rx_level - 1) & 0xf) << 12;        if (s->rx_level >= SSCR1_RFT(s->sscr[1]))            s->sssr |= SSSR_RFS;        else            s->sssr &= ~SSSR_RFS;        if (0 <= SSCR1_TFT(s->sscr[1]))            s->sssr |= SSSR_TFS;        else            s->sssr &= ~SSSR_TFS;        if (s->rx_level)            s->sssr |= SSSR_RNE;        else            s->sssr &= ~SSSR_RNE;        s->sssr |= SSSR_TNF;    }    pxa2xx_ssp_int_update(s);}static uint32_t pxa2xx_ssp_read(void *opaque, target_phys_addr_t addr){    struct pxa2xx_ssp_s *s = (struct pxa2xx_ssp_s *) opaque;    uint32_t retval;    addr -= s->base;    switch (addr) {    case SSCR0:        return s->sscr[0];    case SSCR1:        return s->sscr[1];    case SSPSP:        return s->sspsp;    case SSTO:        return s->ssto;    case SSITR:        return s->ssitr;    case SSSR:        return s->sssr | s->ssitr;    case SSDR:        if (!s->enable)            return 0xffffffff;        if (s->rx_level < 1) {            printf("%s: SSP Rx Underrun\n", __FUNCTION__);            return 0xffffffff;        }        s->rx_level --;        retval = s->rx_fifo[s->rx_start ++];        s->rx_start &= 0xf;        pxa2xx_ssp_fifo_update(s);        return retval;    case SSTSA:        return s->sstsa;    case SSRSA:        return s->ssrsa;    case SSTSS:        return 0;    case SSACD:        return s->ssacd;    default:        printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr);        break;    }    return 0;}static void pxa2xx_ssp_write(void *opaque, target_phys_addr_t addr,                uint32_t value){    struct pxa2xx_ssp_s *s = (struct pxa2xx_ssp_s *) opaque;    addr -= s->base;    switch (addr) {    case SSCR0:        s->sscr[0] = value & 0xc7ffffff;        s->enable = value & SSCR0_SSE;        if (value & SSCR0_MOD)            printf("%s: Attempt to use network mode\n", __FUNCTION__);        if (s->enable && SSCR0_DSS(value) < 4)            printf("%s: Wrong data size: %i bits\n", __FUNCTION__,                            SSCR0_DSS(value));        if (!(value & SSCR0_SSE)) {            s->sssr = 0;            s->ssitr = 0;            s->rx_level = 0;        }        pxa2xx_ssp_fifo_update(s);        break;    case SSCR1:        s->sscr[1] = value;        if (value & (SSCR1_LBM | SSCR1_EFWR))            printf("%s: Attempt to use SSP test mode\n", __FUNCTION__);        pxa2xx_ssp_fifo_update(s);        break;    case SSPSP:        s->sspsp = value;        break;    case SSTO:        s->ssto = value;        break;    case SSITR:        s->ssitr = value & SSITR_INT;        pxa2xx_ssp_int_update(s);        break;    case SSSR:        s->sssr &= ~(value & SSSR_RW);        pxa2xx_ssp_int_update(s);        break;    case SSDR:        if (SSCR0_UWIRE(s->sscr[0])) {            if (s->sscr[1] & SSCR1_MWDS)                value &= 0xffff;            else                value &= 0xff;        } else            /* Note how 32bits overflow does no harm here */            value &= (1 << SSCR0_DSS(s->sscr[0])) - 1;        /* Data goes from here to the Tx FIFO and is shifted out from         * there directly to the slave, no need to buffer it.         */        if (s->enable) {            if (s->writefn)                s->writefn(s->opaque, value);            if (s->rx_level < 0x10) {                if (s->readfn)                    s->rx_fifo[(s->rx_start + s->rx_level ++) & 0xf] =                            s->readfn(s->opaque);                else                    s->rx_fifo[(s->rx_start + s->rx_level ++) & 0xf] = 0x0;            } else                s->sssr |= SSSR_ROR;        }        pxa2xx_ssp_fifo_update(s);        break;    case SSTSA:        s->sstsa = value;        break;    case SSRSA:        s->ssrsa = value;        break;    case SSACD:        s->ssacd = value;        break;    default:        printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr);        break;    }}void pxa2xx_ssp_attach(struct pxa2xx_ssp_s *port,                uint32_t (*readfn)(void *opaque),                void (*writefn)(void *opaque, uint32_t value), void *opaque){    if (!port) {        printf("%s: no such SSP\n", __FUNCTION__);        exit(-1);    }    port->opaque = opaque;    port->readfn = readfn;    port->writefn = writefn;}static CPUReadMemoryFunc *pxa2xx_ssp_readfn[] = {    pxa2xx_ssp_read,    pxa2xx_ssp_read,    pxa2xx_ssp_read,};static CPUWriteMemoryFunc *pxa2xx_ssp_writefn[] = {    pxa2xx_ssp_write,    pxa2xx_ssp_write,    pxa2xx_ssp_write,};static void pxa2xx_ssp_save(QEMUFile *f, void *opaque){    struct pxa2xx_ssp_s *s = (struct pxa2xx_ssp_s *) opaque;    int i;    qemu_put_be32(f, s->enable);    qemu_put_be32s(f, &s->sscr[0]);    qemu_put_be32s(f, &s->sscr[1]);    qemu_put_be32s(f, &s->sspsp);    qemu_put_be32s(f, &s->ssto);    qemu_put_be32s(f, &s->ssitr);    qemu_put_be32s(f, &s->sssr);    qemu_put_8s(f, &s->sstsa);    qemu_put_8s(f, &s->ssrsa);    qemu_put_8s(f, &s->ssacd);    qemu_put_byte(f, s->rx_level);    for (i = 0; i < s->rx_level; i ++)        qemu_put_byte(f, s->rx_fifo[(s->rx_start + i) & 0xf]);}static int pxa2xx_ssp_load(QEMUFile *f, void *opaque, int version_id){    struct pxa2xx_ssp_s *s = (struct pxa2xx_ssp_s *) opaque;    int i;    s->enable = qemu_get_be32(f);    qemu_get_be32s(f, &s->sscr[0]);    qemu_get_be32s(f, &s->sscr[1]);    qemu_get_be32s(f, &s->sspsp);    qemu_get_be32s(f, &s->ssto);    qemu_get_be32s(f, &s->ssitr);    qemu_get_be32s(f, &s->sssr);    qemu_get_8s(f, &s->sstsa);    qemu_get_8s(f, &s->ssrsa);    qemu_get_8s(f, &s->ssacd);    s->rx_level = qemu_get_byte(f);    s->rx_start = 0;    for (i = 0; i < s->rx_level; i ++)        s->rx_fifo[i] = qemu_get_byte(f);    return 0;}/* Real-Time Clock */#define RCNR		0x00	/* RTC Counter register */#define RTAR		0x04	/* RTC Alarm register */#define RTSR		0x08	/* RTC Status register */#define RTTR		0x0c	/* RTC Timer Trim register */#define RDCR		0x10	/* RTC Day Counter register */#define RYCR		0x14	/* RTC Year Counter register */#define RDAR1		0x18	/* RTC Wristwatch Day Alarm register 1 */#define RYAR1		0x1c	/* RTC Wristwatch Year Alarm register 1 */#define RDAR2		0x20	/* RTC Wristwatch Day Alarm register 2 */#define RYAR2		0x24	/* RTC Wristwatch Year Alarm register 2 */#define SWCR		0x28	/* RTC Stopwatch Counter register */#define SWAR1		0x2c	/* RTC Stopwatch Alarm register 1 */#define SWAR2		0x30	/* RTC Stopwatch Alarm register 2 */#define RTCPICR		0x34	/* RTC Periodic Interrupt Counter register */#define PIAR		0x38	/* RTC Periodic Interrupt Alarm register */static inline void pxa2xx_rtc_int_update(struct pxa2xx_state_s *s){    qemu_set_irq(s->pic[PXA2XX_PIC_RTCALARM], !!(s->rtsr & 0x2553));}static void pxa2xx_rtc_hzupdate(struct pxa2xx_state_s *s){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清beeg欧美| 欧美一区二区三区性视频| 色视频成人在线观看免| 日韩午夜在线观看| 亚洲人午夜精品天堂一二香蕉| 午夜影院久久久| 不卡的看片网站| 精品va天堂亚洲国产| 亚洲在线免费播放| 成人性视频免费网站| 日韩三级免费观看| 亚洲国产精品一区二区www在线| 久草这里只有精品视频| 欧美日韩大陆一区二区| 最新国产精品久久精品| 国产九色sp调教91| 欧美一区2区视频在线观看| 亚洲精品中文在线影院| 成人一区二区三区视频在线观看| 欧美日韩二区三区| 亚洲欧洲一区二区在线播放| 国产在线播放一区二区三区| 91精品国产综合久久久久久漫画| 一区二区在线免费观看| av不卡免费在线观看| 国产精品日韩成人| 国产精一品亚洲二区在线视频| 日韩欧美国产综合| 天天影视涩香欲综合网| 欧美午夜精品一区| 亚洲最新视频在线播放| 一本一道综合狠狠老| 中文字幕在线不卡国产视频| 成熟亚洲日本毛茸茸凸凹| 久久免费的精品国产v∧| 久久国产剧场电影| 2021久久国产精品不只是精品| 免费在线一区观看| 日韩午夜激情视频| 精品制服美女久久| 26uuu久久综合| 国产高清视频一区| 国产精品素人视频| jlzzjlzz欧美大全| 亚洲精品国产精品乱码不99| 色哟哟国产精品| 亚洲国产精品精华液网站| 欧美日韩久久不卡| 久久99精品国产麻豆不卡| 欧美成人a视频| 国产一区二区福利| 中文天堂在线一区| 色屁屁一区二区| 五月天激情综合| 欧美大胆人体bbbb| 成人黄色免费短视频| 亚洲人吸女人奶水| 884aa四虎影成人精品一区| 九一九一国产精品| 国产精品人妖ts系列视频| 91麻豆自制传媒国产之光| 一区二区三区产品免费精品久久75 | 亚洲成人一区在线| 欧美一区二区三区在线视频| 国产在线精品不卡| 亚洲欧美另类在线| 欧美一区二区性放荡片| 国产盗摄精品一区二区三区在线 | 国产一区二区三区在线观看免费 | 国产99精品视频| 亚洲色图色小说| 日韩一区二区精品葵司在线| 国产iv一区二区三区| 一区二区激情小说| 久久久99精品久久| 欧美在线视频不卡| 国产传媒久久文化传媒| 亚洲高清不卡在线| 欧美国产在线观看| 日韩视频一区二区在线观看| 99re8在线精品视频免费播放| 天天av天天翘天天综合网 | 日韩久久久精品| 91亚洲男人天堂| 国模大尺度一区二区三区| 一区二区三区欧美日韩| 久久蜜桃av一区二区天堂| 欧美日韩精品一区视频| 99视频一区二区三区| 激情国产一区二区 | 九一九一国产精品| 亚洲综合在线第一页| 中文字幕 久热精品 视频在线 | av亚洲精华国产精华精华| 免费日本视频一区| 亚洲主播在线观看| 中文字幕亚洲不卡| 久久久久久久综合狠狠综合| 91精品国产91久久综合桃花| 色播五月激情综合网| 国产凹凸在线观看一区二区| 伦理电影国产精品| 天堂va蜜桃一区二区三区| 中文字幕欧美一区| 国产欧美日韩视频一区二区| 日韩精品资源二区在线| 欧美午夜电影网| 91成人免费电影| 91免费版在线看| 成人app软件下载大全免费| 国产精品12区| 国产乱色国产精品免费视频| 免费成人在线播放| 日韩精品视频网| 亚洲第一激情av| 一区二区三区精品在线观看| 最新成人av在线| 亚洲欧美偷拍卡通变态| 中文字幕一区二| 亚洲精品欧美在线| 亚洲h动漫在线| 水蜜桃久久夜色精品一区的特点| 一个色妞综合视频在线观看| 亚洲人亚洲人成电影网站色| 亚洲视频在线观看三级| 亚洲区小说区图片区qvod| 亚洲品质自拍视频网站| 亚洲午夜精品网| 图片区小说区国产精品视频| 婷婷国产v国产偷v亚洲高清| 日韩国产精品大片| 久久精品72免费观看| 国产精品中文有码| 成人爱爱电影网址| 91精彩视频在线观看| 欧美精品第1页| 日韩久久精品一区| 国产精品麻豆久久久| 亚洲美女电影在线| 日韩影院免费视频| 精品一区二区三区在线视频| 丁香婷婷综合色啪| 色哟哟一区二区三区| 欧美一卡二卡在线观看| 久久久三级国产网站| 最新中文字幕一区二区三区| 亚洲激情男女视频| 秋霞电影网一区二区| 国产成人精品三级| 在线免费观看日本欧美| 日韩久久精品一区| 亚洲精选视频在线| 麻豆成人久久精品二区三区小说| 国产精品456| 欧美专区在线观看一区| 欧美v亚洲v综合ⅴ国产v| 国产精品久久久久久久久搜平片 | 国产精品视频线看| 亚洲成av人片一区二区三区| 欧美日韩国产在线观看| 国产原创一区二区| 日韩欧美第一区| 中文字幕亚洲不卡| 美女爽到高潮91| 午夜av电影一区| 韩日欧美一区二区三区| 激情综合五月婷婷| 91日韩精品一区| 亚洲三级在线播放| 色88888久久久久久影院按摩| 亚洲视频免费在线观看| 99久精品国产| 亚洲另类色综合网站| 欧美在线高清视频| 婷婷夜色潮精品综合在线| 欧美日韩dvd在线观看| 图片区小说区国产精品视频| 欧美电影在线免费观看| 青青草成人在线观看| 精品国产乱码久久久久久免费 | 国产精品久久久久久妇女6080| 夫妻av一区二区| 国产精品久久影院| 色婷婷亚洲婷婷| 午夜久久久久久久久| 欧美一卡2卡3卡4卡| 激情文学综合网| 国产精品丝袜一区| 欧美性感一类影片在线播放| 亚洲成人动漫av| 久久综合色8888| 成人精品免费网站| 亚洲一区二区三区美女| 337p亚洲精品色噜噜噜| 韩国毛片一区二区三区| 国产精品毛片高清在线完整版| 色欧美乱欧美15图片| 亚洲国产aⅴ成人精品无吗| 欧美r级电影在线观看| 国产不卡在线播放|