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

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

?? epia.c

?? linux和2410結合開發 用他可以生成2410所需的zImage文件
?? C
字號:
/*         epia.c    (c) 1997-8  Grant R. Guenther <grant@torque.net>                              Under the terms of the GNU General Public License.        epia.c is a low-level protocol driver for Shuttle Technologies 	EPIA parallel to IDE adapter chip.  This device is now obsolete	and has been replaced with the EPAT chip, which is supported	by epat.c, however, some devices based on EPIA are still	available.*//* Changes:        1.01    GRG 1998.05.06 init_proto, release_proto	1.02    GRG 1998.06.17 support older versions of EPIA*/#define EPIA_VERSION      "1.02"#include <linux/module.h>#include <linux/delay.h>#include <linux/kernel.h>#include <linux/types.h>#include <linux/wait.h>#include <asm/io.h>#include "paride.h"/* mode codes:  0  nybble reads on port 1, 8-bit writes                1  5/3 reads on ports 1 & 2, 8-bit writes                2  8-bit reads and writes                3  8-bit EPP mode		4  16-bit EPP		5  32-bit EPP*/#define j44(a,b)                (((a>>4)&0x0f)+(b&0xf0))#define j53(a,b)                (((a>>3)&0x1f)+((b<<4)&0xe0))/* cont =  0   IDE register file   cont =  1   IDE control registers*/static int cont_map[2] = { 0, 0x80 };static int epia_read_regr( PIA *pi, int cont, int regr ){       int     a, b, r;	regr += cont_map[cont];        switch (pi->mode)  {        case 0: r = regr^0x39;                w0(r); w2(1); w2(3); w0(r);                a = r1(); w2(1); b = r1(); w2(4);                return j44(a,b);        case 1: r = regr^0x31;                w0(r); w2(1); w0(r&0x37);                 w2(3); w2(5); w0(r|0xf0);                a = r1(); b = r2(); w2(4);                return j53(a,b);        case 2: r = regr^0x29;                w0(r); w2(1); w2(0X21); w2(0x23);                 a = r0(); w2(4);                return a;	case 3:	case 4:        case 5: w3(regr); w2(0x24); a = r4(); w2(4);                return a;        }        return -1;}       static void epia_write_regr( PIA *pi, int cont, int regr, int val){       int  r;	regr += cont_map[cont];        switch (pi->mode)  {        case 0:        case 1:        case 2: r = regr^0x19;                w0(r); w2(1); w0(val); w2(3); w2(4);                break;	case 3:	case 4:        case 5: r = regr^0x40;                w3(r); w4(val); w2(4);                break;        }}#define WR(r,v)         epia_write_regr(pi,0,r,v)#define RR(r)           (epia_read_regr(pi,0,r))/* The use of register 0x84 is entirely unclear - it seems to control   some EPP counters ...  currently we know about 3 different block   sizes:  the standard 512 byte reads and writes, 12 byte writes and    2048 byte reads (the last two being used in the CDrom drivers.*/static void epia_connect ( PIA *pi  ){       pi->saved_r0 = r0();        pi->saved_r2 = r2();        w2(4); w0(0xa0); w0(0x50); w0(0xc0); w0(0x30); w0(0xa0); w0(0);        w2(1); w2(4);        if (pi->mode >= 3) {                 w0(0xa); w2(1); w2(4); w0(0x82); w2(4); w2(0xc); w2(4);                w2(0x24); w2(0x26); w2(4);        }        WR(0x86,8);  }static void epia_disconnect ( PIA *pi ){       /* WR(0x84,0x10); */        w0(pi->saved_r0);        w2(1); w2(4);        w0(pi->saved_r0);        w2(pi->saved_r2);} static void epia_read_block( PIA *pi, char * buf, int count ){       int     k, ph, a, b;        switch (pi->mode) {        case 0: w0(0x81); w2(1); w2(3); w0(0xc1);                ph = 1;                for (k=0;k<count;k++) {                        w2(2+ph); a = r1();                        w2(4+ph); b = r1();                        buf[k] = j44(a,b);                        ph = 1 - ph;                }                 w0(0); w2(4);                break;        case 1: w0(0x91); w2(1); w0(0x10); w2(3);                 w0(0x51); w2(5); w0(0xd1);                 ph = 1;                for (k=0;k<count;k++) {                        w2(4+ph);                        a = r1(); b = r2();                        buf[k] = j53(a,b);                        ph = 1 - ph;                }                w0(0); w2(4);                break;        case 2: w0(0x89); w2(1); w2(0x23); w2(0x21);                 ph = 1;                for (k=0;k<count;k++) {                        w2(0x24+ph);                        buf[k] = r0();                        ph = 1 - ph;                }                w2(6); w2(4);                break;        case 3: if (count > 512) WR(0x84,3);		w3(0); w2(0x24);                for (k=0;k<count;k++) buf[k] = r4();                w2(4); WR(0x84,0);                break;        case 4: if (count > 512) WR(0x84,3);		w3(0); w2(0x24);		for (k=0;k<count/2;k++) ((u16 *)buf)[k] = r4w();                w2(4); WR(0x84,0);                break;        case 5: if (count > 512) WR(0x84,3);		w3(0); w2(0x24);                for (k=0;k<count/4;k++) ((u32 *)buf)[k] = r4l();                w2(4); WR(0x84,0);                break;        }}static void epia_write_block( PIA *pi, char * buf, int count ){       int     ph, k, last, d;        switch (pi->mode) {        case 0:        case 1:        case 2: w0(0xa1); w2(1); w2(3); w2(1); w2(5);                ph = 0;  last = 0x8000;                for (k=0;k<count;k++) {                        d = buf[k];                        if (d != last) { last = d; w0(d); }                        w2(4+ph);                        ph = 1 - ph;                }                w2(7); w2(4);                break;        case 3: if (count < 512) WR(0x84,1);		w3(0x40);                for (k=0;k<count;k++) w4(buf[k]);		if (count < 512) WR(0x84,0);                break;        case 4: if (count < 512) WR(0x84,1);		w3(0x40);                for (k=0;k<count/2;k++) w4w(((u16 *)buf)[k]);		if (count < 512) WR(0x84,0);                break;        case 5: if (count < 512) WR(0x84,1);		w3(0x40);                for (k=0;k<count/4;k++) w4l(((u32 *)buf)[k]);		if (count < 512) WR(0x84,0);                break;        }}static int epia_test_proto( PIA *pi, char * scratch, int verbose ){       int     j, k, f;	int	e[2] = {0,0};        epia_connect(pi);        for (j=0;j<2;j++) {            WR(6,0xa0+j*0x10);            for (k=0;k<256;k++) {                WR(2,k^0xaa);                WR(3,k^0x55);                if (RR(2) != (k^0xaa)) e[j]++;                }	    WR(2,1); WR(3,1);            }        epia_disconnect(pi);        f = 0;        epia_connect(pi);        WR(0x84,8);        epia_read_block(pi,scratch,512);        for (k=0;k<256;k++) {            if ((scratch[2*k] & 0xff) != ((k+1) & 0xff)) f++;            if ((scratch[2*k+1] & 0xff) != ((-2-k) & 0xff)) f++;        }        WR(0x84,0);        epia_disconnect(pi);        if (verbose)  {            printk("%s: epia: port 0x%x, mode %d, test=(%d,%d,%d)\n",                   pi->device,pi->port,pi->mode,e[0],e[1],f);        }                return (e[0] && e[1]) || f;}static void epia_log_adapter( PIA *pi, char * scratch, int verbose ){       char    *mode_string[6] = {"4-bit","5/3","8-bit",				   "EPP-8","EPP-16","EPP-32"};        printk("%s: epia %s, Shuttle EPIA at 0x%x, ",                pi->device,EPIA_VERSION,pi->port);        printk("mode %d (%s), delay %d\n",pi->mode,		mode_string[pi->mode],pi->delay);}static void epia_init_proto( PIA *pi){       MOD_INC_USE_COUNT;}static void epia_release_proto( PIA *pi){       MOD_DEC_USE_COUNT;}struct pi_protocol epia = {"epia",0,6,3,1,1,                           epia_write_regr,                           epia_read_regr,                           epia_write_block,                           epia_read_block,                           epia_connect,                           epia_disconnect,                           0,                           0,                           epia_test_proto,                           epia_log_adapter,                           epia_init_proto,                           epia_release_proto                          };#ifdef MODULEint     init_module(void){       return pi_register( &epia ) - 1;}void    cleanup_module(void){       pi_unregister( &epia );}#endif/* end of epia.c */MODULE_LICENSE("GPL");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线一区观看| 欧美一区二区高清| 欧美日韩精品系列| 日韩精品综合一本久道在线视频| 国产日韩av一区二区| 亚洲精选在线视频| 麻豆国产精品777777在线| 成人性色生活片免费看爆迷你毛片| 99精品国产热久久91蜜凸| 欧美色视频在线观看| 2014亚洲片线观看视频免费| 国产精品超碰97尤物18| 五月天激情综合| 成人夜色视频网站在线观看| 欧美日韩精品一区二区天天拍小说| 日韩一区二区精品| 136国产福利精品导航| 亚洲成av人片在线| 成人黄色电影在线| 日韩小视频在线观看专区| 国产精品国产三级国产aⅴ原创| 亚洲国产美女搞黄色| 国产精品91一区二区| 欧美日韩在线播放三区四区| 久久久精品2019中文字幕之3| 一区av在线播放| 国产精品18久久久久久久久 | 国产亚洲一区二区三区四区| 亚洲国产精品精华液2区45| 一区二区三区四区在线播放 | 久久综合国产精品| 一区二区在线观看免费视频播放| 狠狠色丁香久久婷婷综| 欧美日本一区二区三区四区 | 91亚洲国产成人精品一区二三 | 精品一区二区影视| 欧美午夜片在线观看| 国产精品美日韩| 麻豆精品视频在线观看免费| 91黄视频在线观看| 国产精品日日摸夜夜摸av| 美国三级日本三级久久99| 欧美怡红院视频| 一区免费观看视频| 国产精品自产自拍| 欧美电影免费观看高清完整版在线 | 亚洲图片激情小说| 国产风韵犹存在线视精品| 9191久久久久久久久久久| 玉足女爽爽91| 91无套直看片红桃| 日韩一区在线看| 丁香啪啪综合成人亚洲小说| 日韩欧美视频一区| 青青草视频一区| 精品一区二区在线观看| 91精品国产综合久久香蕉的特点| 亚洲自拍都市欧美小说| 91在线观看污| 亚洲无线码一区二区三区| 欧美日韩综合色| 日韩国产一区二| 26uuu久久综合| 成人av网站大全| 亚洲一区自拍偷拍| 5月丁香婷婷综合| 国产高清不卡二三区| 国产人成亚洲第一网站在线播放| 国产sm精品调教视频网站| 亚洲色欲色欲www| 欧美影院精品一区| 成人永久aaa| 一区二区三区精品视频| 国产精品久久久久久久久搜平片 | 日本久久一区二区| 天天av天天翘天天综合网色鬼国产| 一区二区成人在线观看| 奇米一区二区三区| 性做久久久久久免费观看欧美| 色天使色偷偷av一区二区| 亚洲人一二三区| 欧美综合亚洲图片综合区| 一区二区三区美女视频| 欧美三级日韩三级| 日韩电影在线看| 日韩欧美成人一区二区| 经典三级在线一区| 国产欧美精品一区aⅴ影院| 成人自拍视频在线观看| 国产精品成人一区二区艾草| 色综合久久久久综合体桃花网| 一区二区在线观看免费| 欧美色大人视频| 男人的j进女人的j一区| 欧美精品一区二区久久久| 国产成人在线视频网站| 中文字幕一区二区视频| 欧日韩精品视频| 蜜臀久久99精品久久久久宅男 | 日本在线不卡视频| 精品国产1区2区3区| 99在线视频精品| 午夜激情一区二区三区| 久久亚洲一级片| 色综合久久九月婷婷色综合| 亚洲成人自拍网| 2024国产精品| 92国产精品观看| 午夜欧美视频在线观看| 精品国产免费久久| 波多野洁衣一区| 日本成人在线一区| 欧美激情中文不卡| 欧美日韩不卡一区二区| 国产精品综合一区二区三区| 亚洲日本在线观看| 日韩一二在线观看| 不卡电影一区二区三区| 图片区小说区区亚洲影院| 久久久久久久久伊人| 91视频com| 国内精品视频一区二区三区八戒| 国产精品高潮久久久久无| 欧美精品粉嫩高潮一区二区| 国产成人免费在线| 日韩在线一二三区| 日本一区二区久久| 欧美一区二区福利在线| 99re热这里只有精品免费视频| 日韩在线一区二区三区| 国产精品乱码一区二三区小蝌蚪| 欧美日本不卡视频| 成人黄色电影在线 | 欧美不卡一区二区三区四区| a4yy欧美一区二区三区| 青青草97国产精品免费观看无弹窗版| 国产精品视频一二三区 | 国产一区二区三区四区五区美女 | 欧美视频一区二区| 国产成人自拍高清视频在线免费播放 | 国内精品第一页| 亚洲国产精品麻豆| 欧美韩国日本不卡| 日韩三级在线免费观看| 色婷婷精品久久二区二区蜜臂av | 精品国产免费一区二区三区四区| 在线视频你懂得一区| 国产成人精品影院| 青青草91视频| 午夜精品爽啪视频| 亚洲黄色小说网站| 亚洲欧美综合色| 欧美高清在线精品一区| 精品国产1区二区| 欧美一区二区三区精品| 欧美性极品少妇| 91麻豆国产自产在线观看| 国产一区不卡精品| 久久国产剧场电影| 奇米影视在线99精品| 亚洲图片欧美视频| 亚洲免费色视频| 亚洲国产岛国毛片在线| 久久精品日产第一区二区三区高清版| 欧美一区二区三区系列电影| 欧美日韩在线直播| 欧美在线免费观看视频| 91麻豆免费视频| 91麻豆免费在线观看| 97成人超碰视| 91蜜桃免费观看视频| 99热精品国产| 99久久精品国产观看| 白白色亚洲国产精品| 成人久久视频在线观看| 盗摄精品av一区二区三区| 国产乱子轮精品视频| 激情都市一区二区| 激情av综合网| 国产一区二区视频在线| 国产精品自在欧美一区| 国产传媒日韩欧美成人| 国产成人免费在线视频| 成人午夜电影网站| 成人激情文学综合网| 99久久99久久免费精品蜜臀| 成人福利视频在线看| 97久久精品人人做人人爽50路| 99久久精品久久久久久清纯| 91浏览器入口在线观看| 91久久精品一区二区二区| 欧美私人免费视频| 欧美日韩国产免费一区二区| 7777精品伊人久久久大香线蕉| 5月丁香婷婷综合| 久久综合色之久久综合| 久久精品欧美一区二区三区不卡| 国产欧美1区2区3区| 国产精品妹子av| 久久久不卡网国产精品一区|