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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cbios.c

?? uboot for K9 AT91RM9200 學(xué)習(xí)板
?? C
字號(hào):
#include <unistd.h>#include <fcntl.h>#include <stdio.h>#include <sys/mman.h>#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <signal.h>#include <sys/stat.h>#include <getopt.h>#if defined(__alpha__) || defined (__ia64__)#include <sys/io.h>#elif defined(HAVE_SYS_PERM)#include <sys/perm.h>#endif#include "debug.h"#include "v86bios.h"#include "pci.h"#include "AsmMacros.h"#define SIZE 0x100000#define VRAM_START 0xA0000#define VRAM_SIZE 0x1FFFF#define V_BIOS_SIZE 0x1FFFF#define BIOS_START 0x7C00            /* default BIOS entry */#define BIOS_MEM 0x600CARD8 code[] = { 0xcd, 0x10, 0xf4 };struct config Config;static int map(void);static void unmap(void);static void runBIOS(int argc, char **argv);static int map_vram(void);static void unmap_vram(void);static int copy_vbios(memType base);static int copy_sys_bios(void);static CARD32 setup_int_vect(void);static void update_bios_vars(void);static int chksum(CARD8 *start);static void setup_bios_regs(i86biosRegsPtr regs, int argc, char **argv);static void print_regs(i86biosRegsPtr regs);void dprint(unsigned long start, unsigned long size);void loadCodeToMem(unsigned char *ptr, CARD8 *code);static int vram_mapped = 0;static char* bios_var;intmain(int argc,char **argv){    CARD32 vbios_base;    Config.PrintPort = PRINT_PORT;    Config.IoStatistics = IO_STATISTICS;    Config.PrintIrq = PRINT_IRQ;    Config.PrintPci = PRINT_PCI;    Config.ShowAllDev = SHOW_ALL_DEV;    Config.PrintIp = PRINT_IP;    Config.SaveBios = SAVE_BIOS;    Config.Trace = TRACE;    Config.ConfigActiveOnly = CONFIG_ACTIVE_ONLY;    Config.ConfigActiveDevice = CONFIG_ACTIVE_DEVICE;    Config.MapSysBios = MAP_SYS_BIOS;    Config.Resort = RESORT;    Config.FixRom = FIX_ROM;    Config.NoConsole = NO_CONSOLE;    Config.Verbose = VERBOSE;    if (!map())    exit(1);    if (!copy_sys_bios())    exit(1);    if (!(vbios_base = setup_int_vect()))    exit(1);    if (!map_vram())    exit(1);    if (!copy_vbios(vbios_base))    exit(1);    iopl(3);    setup_io();    runBIOS(argc,argv);    update_bios_vars();    unmap_vram();    iopl(0);    unmap();    printf("done !\n");    exit (1);}intmap(void){    void* mem;    mem = mmap(0, (size_t)SIZE,	       PROT_EXEC | PROT_READ | PROT_WRITE,	       MAP_FIXED | MAP_PRIVATE | MAP_ANON,	       -1, 0 );    if (mem != 0) {	perror("anonymous map");	return (0);    }    memset(mem,0,SIZE);    loadCodeToMem((unsigned char *) BIOS_START, code);    return (1);}static intcopy_sys_bios(void){#define SYS_BIOS 0xF0000    int mem_fd;    if ((mem_fd = open(MEM_FILE,O_RDONLY))<0) {	perror("opening memory");	return (0);    }    if (lseek(mem_fd,(off_t) SYS_BIOS,SEEK_SET) != (off_t) SYS_BIOS)	goto Error;    if (read(mem_fd, (char *)SYS_BIOS, (size_t) 0xFFFF) != (size_t) 0xFFFF)	goto Error;    close(mem_fd);    return (1);Error:    perror("sys_bios");    close(mem_fd);    return (0);}static intmap_vram(void){    int mem_fd;#ifdef __ia64__    if ((mem_fd = open(MEM_FILE,O_RDWR | O_SYNC))<0)#else    if ((mem_fd = open(MEM_FILE,O_RDWR))<0)#endif      {	perror("opening memory");	return 0;    }#ifndef __alpha__    if (mmap((void *) VRAM_START, (size_t) VRAM_SIZE,		     PROT_EXEC | PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED,		     mem_fd, VRAM_START) == (void *) -1)#else	 if (!_bus_base()) sparse_shift = 7; /* Uh, oh, JENSEN... */	 if (!_bus_base_sparse()) sparse_shift = 0;	 if ((vram_map = mmap(0,(size_t) (VRAM_SIZE << sparse_shift),						 PROT_READ | PROT_WRITE,						 MAP_SHARED,						 mem_fd, (VRAM_START << sparse_shift)						 | _bus_base_sparse())) == (void *) -1)#endif      {	perror("mmap error in map_hardware_ram");	    close(mem_fd);	    return (0);	}    vram_mapped = 1;    close(mem_fd);    return (1);}static intcopy_vbios(memType v_base){    int mem_fd;    unsigned char *tmp;    int size;    if ((mem_fd = open(MEM_FILE,O_RDONLY))<0) {	perror("opening memory");	return (0);    }    if (lseek(mem_fd,(off_t) v_base, SEEK_SET) != (off_t) v_base) {	  fprintf(stderr,"Cannot lseek\n");	  goto Error;      }    tmp = (unsigned char *)malloc(3);    if (read(mem_fd, (char *)tmp, (size_t) 3) != (size_t) 3) {	    fprintf(stderr,"Cannot read\n");	goto Error;    }    if (lseek(mem_fd,(off_t) v_base,SEEK_SET) != (off_t) v_base)	goto Error;    if (*tmp != 0x55 || *(tmp+1) != 0xAA ) {	fprintf(stderr,"No bios found at: 0x%lx\n",v_base);	goto Error;    }#ifdef DEBUG	dprint((unsigned long)tmp,0x100);#endif    size = *(tmp+2) * 512;    if (read(mem_fd, (char *)v_base, (size_t) size) != (size_t) size) {	    fprintf(stderr,"Cannot read\n");	goto Error;    }    free(tmp);    close(mem_fd);    if (!chksum((CARD8*)v_base))	return (0);    return (1);Error:    perror("v_bios");    close(mem_fd);    return (0);}static voidunmap(void){    munmap(0,SIZE);}static voidunmap_vram(void){    if (!vram_mapped) return;    munmap((void*)VRAM_START,VRAM_SIZE);    vram_mapped = 0;}static voidrunBIOS(int argc, char ** argv){    i86biosRegs bRegs;#ifdef V86BIOS_DEBUG    printf("starting BIOS\n");#endif    setup_bios_regs(&bRegs, argc, argv);    do_x86(BIOS_START,&bRegs);    print_regs(&bRegs);#ifdef V86BIOS_DEBUG    printf("done\n");#endif}static CARD32setup_int_vect(void){    int mem_fd;    CARD32 vbase;    void *map;    if ((mem_fd = open(MEM_FILE,O_RDONLY))<0) {    perror("opening memory");    return (0);    }    if ((map = mmap((void *) 0, (size_t) 0x2000,	 PROT_EXEC | PROT_READ | PROT_WRITE, MAP_SHARED,	 mem_fd, 0)) == (void *)-1)   {    perror("mmap error in map_hardware_ram");    close(mem_fd);    return (0);    }    close(mem_fd);    memcpy(0,map,BIOS_MEM);    munmap(map,0x2000);    /*     * create a backup copy of the bios variables to write back the     * modified values     */    bios_var = (char *)malloc(BIOS_MEM);    memcpy(bios_var,0,BIOS_MEM);    vbase = (*((CARD16*)(0x10 << 2) + 1)) << 4;    fprintf(stderr,"vbase: 0x%x\n",vbase);    return vbase;}static voidupdate_bios_vars(void){    int mem_fd;    void *map;    memType i;#ifdef __ia64__    if ((mem_fd = open(MEM_FILE,O_RDWR | O_SYNC))<0)#else    if ((mem_fd = open(MEM_FILE,O_RDWR))<0)#endif      {	perror("opening memory");	return;      }    if ((map = mmap((void *) 0, (size_t) 0x2000,	 PROT_EXEC | PROT_READ | PROT_WRITE, MAP_SHARED,	 mem_fd, 0)) == (void *)-1)   {    perror("mmap error in map_hardware_ram");    close(mem_fd);    return;    }    for (i = 0; i < BIOS_MEM; i++) {    if (bios_var[i] != *(CARD8*)i)	*((CARD8*)map + i) = *(CARD8*)i;    }    munmap(map,0x2000);    close(mem_fd);}static voidsetup_bios_regs(i86biosRegsPtr regs, int argc, char **argv){    int c;    regs->ax = 0;    regs->bx = 0;    regs->cx = 0;    regs->dx = 0;    regs->es = 0;    regs->di = 0;    opterr = 0;    while ((c = getopt(argc,argv,"a:b:c:d:e:i:")) != EOF) {    switch (c) {    case 'a':	regs->ax = strtol(optarg,NULL,0);	break;    case 'b':	regs->bx = strtol(optarg,NULL,0);	break;    case 'c':	regs->cx = strtol(optarg,NULL,0);	break;    case 'd':	regs->dx = strtol(optarg,NULL,0);	break;    case 'e':	regs->es = strtol(optarg,NULL,0);	break;    case 'i':	regs->di = strtol(optarg,NULL,0);	break;    }    }}static intchksum(CARD8 *start){  CARD16 size;  CARD8 val = 0;  int i;  size = *(start+2) * 512;  for (i = 0; i<size; i++)    val += *(start + i);  if (!val)    return 1;    fprintf(stderr,"BIOS cksum wrong!\n");  return 0;}static voidprint_regs(i86biosRegsPtr regs){    printf("ax=%x bx=%x cx=%x dx=%x es=%x di=%x\n",(CARD16)regs->ax,       (CARD16)regs->bx,(CARD16)regs->cx,(CARD16)regs->dx,       (CARD16)regs->es,(CARD16)regs->di);}voidloadCodeToMem(unsigned char *ptr, CARD8 code[]){    int i;    CARD8 val;    for ( i=0;;i++) {	val = code[i];	*ptr++ = val;	if (val == 0xf4) break;    }    return;}voiddprint(unsigned long start, unsigned long size){    int i,j;    char *c = (char *)start;    for (j = 0; j < (size >> 4); j++) {	printf ("\n0x%lx:  ",(unsigned long)c);	for (i = 0; i<16; i++)	    printf("%x ",(unsigned char) (*(c++)));    }    printf("\n");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女同女同女同女同女同69| 亚洲.国产.中文慕字在线| 日韩精品一区二区在线| 欧美日韩1区2区| 欧美性大战久久久久久久蜜臀| www.一区二区| 91在线视频官网| 色综合久久久久久久久久久| 99re6这里只有精品视频在线观看| 成人午夜电影久久影院| 成人性生交大片免费看视频在线 | 欧美一级二级三级乱码| 欧美视频一区二区三区| 欧美日韩精品一区二区| 欧美日韩久久一区二区| 欧美精品免费视频| 欧美一区二区精品在线| 日韩一区二区在线看片| 精品国产一区二区三区av性色| 精品久久久久一区二区国产| 久久综合狠狠综合久久综合88 | 91社区在线播放| 色88888久久久久久影院野外| 在线亚洲一区二区| 欧美日韩一区二区三区四区五区| 3d动漫精品啪啪1区2区免费| 日韩欧美精品在线视频| 久久香蕉国产线看观看99| 亚洲国产精品久久人人爱| 婷婷亚洲久悠悠色悠在线播放| 免费成人在线观看| 精品一二三四区| 高清av一区二区| 91福利视频久久久久| 欧美高清视频在线高清观看mv色露露十八| 欧美一区国产二区| 欧美精品一区二区在线播放 | 久久99久国产精品黄毛片色诱| 国产精品99精品久久免费| 成人avav影音| 欧美日韩国产乱码电影| 日韩你懂的在线播放| 国产精品私人影院| 亚洲国产一区二区三区| 美女www一区二区| 国产99久久久国产精品| 欧美亚洲尤物久久| 欧美r级在线观看| 亚洲色图一区二区| 视频在线观看一区| 国产精品1区2区| 欧美伊人久久大香线蕉综合69| 久久这里只有精品首页| 亚洲欧美日本韩国| 久久精品免费看| 一本大道久久a久久综合| 欧美一级欧美一级在线播放| 国产精品美女久久久久久久| 日韩成人av影视| 99久免费精品视频在线观看| 日韩欧美一级特黄在线播放| 日韩伦理av电影| 免费观看久久久4p| 99re这里都是精品| 精品成人在线观看| 夜夜精品视频一区二区 | 国产成a人亚洲| 欧美日本精品一区二区三区| 国产精品久久久久久久久免费丝袜 | 日韩av不卡在线观看| 高清视频一区二区| 日韩一级免费观看| 亚洲激情中文1区| 国产91色综合久久免费分享| 欧美精品在欧美一区二区少妇| 欧美国产亚洲另类动漫| 男女男精品视频| 欧美在线综合视频| 亚洲欧美一区二区在线观看| 狠狠色丁香婷婷综合久久片| 欧美日韩成人高清| 最新国产精品久久精品| 国产一区日韩二区欧美三区| 91精品国产一区二区三区| 成人免费小视频| 国产99精品在线观看| 欧美电影免费观看高清完整版 | 日本精品免费观看高清观看| 欧美国产乱子伦| 国产一区三区三区| 日韩久久免费av| 日韩制服丝袜先锋影音| 91福利精品视频| 亚洲日本电影在线| 99视频超级精品| 国产精品三级久久久久三级| 国产成人免费视频精品含羞草妖精| 日韩欧美电影一区| 日韩中文字幕区一区有砖一区| 欧美午夜精品久久久久久孕妇| 亚洲欧美另类在线| 99久久777色| 国产精品久久久久久久久久久免费看 | 亚洲一区二区精品视频| 色8久久人人97超碰香蕉987| 亚洲激情欧美激情| 91片在线免费观看| 亚洲视频一区在线观看| 成人av网址在线| 国产精品国产成人国产三级| 播五月开心婷婷综合| 国产精品伦一区| 91视频国产观看| 一区二区三区产品免费精品久久75| 色老汉一区二区三区| 一区二区在线观看视频| 91成人免费在线视频| 亚洲成人一二三| 欧美一区二区三区喷汁尤物| 麻豆91在线看| 久久久国产精品不卡| 国产suv精品一区二区6| 国产精品久久久久影院亚瑟| 一本一道综合狠狠老| 一区二区三区精品久久久| 欧美三级中文字幕| 免费看日韩精品| 久久丝袜美腿综合| 成人福利视频在线| 亚洲激情男女视频| 欧美日韩不卡一区二区| 久久国产尿小便嘘嘘| 欧美极品aⅴ影院| 色哟哟一区二区在线观看| 亚洲国产成人精品视频| 91精品国产综合久久精品麻豆| 久久99久久99| 中文字幕一区二| 欧美日韩一区二区欧美激情| 久久精品99久久久| 国产欧美日韩在线观看| 色综合视频在线观看| 午夜免费久久看| 欧美mv和日韩mv国产网站| 丁香另类激情小说| 亚洲一区中文日韩| 精品免费日韩av| 99亚偷拍自图区亚洲| 天堂va蜜桃一区二区三区 | 亚洲国产va精品久久久不卡综合| 欧美tickling挠脚心丨vk| 粉嫩一区二区三区在线看| 亚洲激情第一区| 欧美精品一区二区久久久| 99久久精品国产一区| 美女一区二区在线观看| 国产精品久久精品日日| 在线播放欧美女士性生活| 国产91精品久久久久久久网曝门 | 日本不卡在线视频| 日本一二三四高清不卡| 欧美艳星brazzers| 精品一区二区三区视频在线观看| 亚洲少妇中出一区| 日韩欧美国产高清| 色狠狠色噜噜噜综合网| 九色porny丨国产精品| 亚洲综合色丁香婷婷六月图片| 2024国产精品| 欧美日韩免费视频| 成人sese在线| 精品写真视频在线观看| 一区二区三区国产豹纹内裤在线| 久久久久97国产精华液好用吗| 欧美日韩大陆一区二区| 99在线视频精品| 国产美女av一区二区三区| 亚洲国产精品人人做人人爽| 国产精品福利一区二区三区| 日韩欧美一级片| 欧美探花视频资源| 99综合影院在线| 国产精品一卡二卡| 日韩福利电影在线观看| 亚洲精品免费在线观看| 欧美国产精品v| 精品国产3级a| 日韩欧美三级在线| 欧美日韩精品一区二区| 91蝌蚪porny九色| 成人精品高清在线| 国产麻豆9l精品三级站| 日韩成人av影视| 午夜精品福利一区二区蜜股av| 亚洲美女在线国产| 国产精品动漫网站| 亚洲国产精品精华液2区45| 久久久噜噜噜久久人人看 | 一区二区中文视频| 欧美激情在线一区二区三区|