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

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

?? hd.c

?? 一個用于學習的操作系統
?? C
字號:
#include <fairysky/types.h>#include <fairysky/defs.h>#include <asm/system.h>#include <asm/irq.h>#include <asm/io.h>#include <fairysky/hd.h>#include <fairysky/kernel.h>#ifdef WINDOWS_CYGWIN#define HD_HANDLER hd_handler#define HD_INTERRUPT hd_interrupt#else#define HD_HANDLER _hd_handler#define HD_INTERRUPT _hd_interrupt#endifHD_INFO hd_info;struct hd_request_struct hd0_request;#define port_read(port, buf, nr) \    __asm__("cld; rep; insw"::"d" (port),"D" (buf),"c" (nr))#define port_write(port, buf, nr) \    __asm__("cld; rep; outsw"::"d" (port),"S" (buf),"c" (nr))#define HD_CMD_PORT     0x03f6#define HD_DATA_PORT     0x01f0#define HD_ERROR_PORT     0x01f1#define HD_NSECTOR_PORT 0x01f2#define HD_SECTOR_PORT     0x01f3#define HD_LCLY_PORT     0x01f4#define HD_HCLY_PORT     0x01f5#define HD_MODE_DEV_HEAD_PORT 0x01f6#define HD_STATE_PORT    0x01f7#define HD_COMMAND_PORT    0x01f7#define HD_ERR_STATE    0x01#define HD_INDEX_STATE    0x02#define HD_ECC_STATE    0x04#define HD_DRQ_STATE    0x08#define HD_SEEK_STATE    0x10#define HD_WRERR_STATE    0x20#define HD_READY_STATE    0x40#define HD_BUSY_STATE    0x80#define HD_CHS_MODE    0#define HD_LBA_MODE    1#define HD_CMD_READ    0x00100000#define HD_CMD_WRITE    0x00110000extern void hd_out(u8 driver,    u8 head,    u8 begin_sector,    u8 sector_count,    u16 cylinder_nr,    u8 hd_cmd,    void (* hd_intr)(void));s32 sys_setup(){    hd_out(0, 0, 1, 2, 1, HD_READ, NULL);}static int hd_out_result(){    int i = inb_p(HD_STATUS);    if ((i & (BUSY_STAT | READY_STAT | WRERR_STAT | SEEK_STAT | ERR_STAT))            == (READY_STAT | SEEK_STAT)) {        return 0;    }    if (i & 1) {        i = inb(HD_ERROR);    }    return 1;}static int hd_ready(){    int retries = 10000;    while (--retries && (inb_p(HD_STATUS) & 0XC0) != 0X40) {        ;    }    return retries;}void HD_HANDLER(){    printk("\n\nHD_HANDLER\n\n");    outb_p(EOI, PORT_8259S);    if (hd_out_result()) {        panic("read hd error\n");        return;    }    //port_read(HD_DATA, hd0_request.buffer, 256);    //print_hex((void *)buf, 128);    __asm__ __volatile__(        "cld \n\t"        "rep insw \n\t"        ::"D"(hd0_request.buffer),        "dx"(0x1f0),        "cx"(256)    );    print_hex((void *)hd0_request.buffer, 128);    //panic("HD_HANDLER");}void hd_out(u8 driver,    u8 head,    u8 begin_sector,    u8 sector_count,    u16 cylinder_nr,    u8 hd_cmd,    void (* hd_intr)(void)){    s16 port;    int i;    u8 *ptmp;    if (driver > 1 || head > 15) {        panic("Try to contrl bad sector");    }    if (hd_ready() == 0) {        panic("HD controller not ready");    }    outb(hd_info.hd_ctl, HD_CMD);   // outb(0xeb, HD_CMD);//IO Delay 讓CPU等待一段時間,因為硬盤的速度比CPU要慢很多   // outb(0, HD_CMD);    outb(hd_info.hd_wpcom >> 2, HD_ERROR);    outb(sector_count, HD_NSECTOR);       //讀寫扇區總數    outb(begin_sector, HD_SECTOR);       //起始扇區    outb(cylinder_nr, HD_LCYL);        //柱面號低8位    outb(cylinder_nr >> 8, HD_HCYL);   //柱面號高8位    outb_p(0xE0 | (driver << 4) | head, HD_CURRENT);    //驅動器號+磁頭號    outb(hd_cmd, HD_STATUS);             //硬盤控制命令    /*    ptmp = index_to_vaddr(get_free_page());    memset(ptmp, 1, 4096);    printk("ptmp:%XH\n", ptmp);    hd0_request.buffer = ptmp;    __asm__ __volatile__(        "cld \n\t"        "rep insw \n\t"        //::"D"(hd0_request.buffer),        ::"D"(ptmp),        "dx"(0x1f0),        "cx"(256)    );    print_hex((void *)ptmp, 128);  */}extern void HD_INTERRUPT(void);int init_hd(){    u8 *p;    u8 *ptmp;    hd_info.hd_cyl = *(u16 *)(pparams->BIOS);    hd_info.hd_head = *(u8 *)(pparams->BIOS + 2);    hd_info.hd_wpcom = *(u16 *)(pparams->BIOS + 5);    hd_info.hd_ctl = *(u8 *)(pparams->BIOS + 8);    hd_info.hd_lzone = *(u16 *)(pparams->BIOS + 12);    hd_info.hd_sect = *(u8 *)(pparams->BIOS + 14);    /*    printk("hd_cyl:%d\n", hd_info.hd_cyl);    printk("hd_head:%d\n", hd_info.hd_head);    printk("hd_wpcom:%d\n", hd_info.hd_wpcom);    printk("hd_ctl:%d\n", hd_info.hd_ctl);    printk("hd_lzone:%d\n", hd_info.hd_lzone);    printk("hd_sect:%d\n", hd_info.hd_sect);    */    set_trap_gate(0x2E, HD_INTERRUPT);    outb_p(inb_p(0x21) & 0xFB, PORT_8259M + 1);    outb_p(inb_p(0xA1) & 0xBF, PORT_8259S + 1);    //outb(inb(0x21) & 0xFB, PORT_8259M + 1);    //outb(inb(0xA1) & 0xBF, PORT_8259S + 1);    ptmp = p = index_to_vaddr(get_free_page());    memset(p, 1, 4096);    hd0_request.device=0;    hd0_request.block=0;    hd0_request.buffer=p;    printk("hd0_request.buffer:%XH\n", hd0_request.buffer);    //hd_read();    hd_out(0, //driver    0, //head    0, //begin_sector    1, //sector_count    0, //cylinder_nr    HD_READ, //hd_cmd    NULL);    //print_hex((void *)p, 128);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图一区二区三区| 日韩精品在线看片z| 国产精品自拍网站| 久久99九九99精品| 精品一区二区三区免费视频| 美女视频黄a大片欧美| 日产国产高清一区二区三区 | 免费久久99精品国产| 亚洲成人手机在线| 三级久久三级久久| 免费人成精品欧美精品| 黄网站免费久久| 老司机免费视频一区二区| 国内精品写真在线观看| 国产另类ts人妖一区二区| 国产乱理伦片在线观看夜一区| 国产成人精品三级麻豆| 91在线播放网址| 欧美猛男gaygay网站| 日韩欧美国产麻豆| 国产精品久久久久久户外露出| 亚洲人成影院在线观看| 亚洲国产一区二区视频| 免费成人你懂的| 成人综合日日夜夜| 在线观看一区二区视频| 日韩美女一区二区三区四区| 国产欧美精品国产国产专区| 亚洲综合视频在线| 国产一区欧美一区| 在线观看视频欧美| 日韩精品专区在线影院重磅| 国产精品视频一二三区 | 欧美一卡二卡在线观看| 久久久精品tv| 亚洲18色成人| 国产成人8x视频一区二区| 欧美亚日韩国产aⅴ精品中极品| 欧美一区二区三区色| 中文字幕制服丝袜一区二区三区 | 欧美精品日韩精品| 中文字幕欧美国产| 日本视频一区二区| 99久久综合国产精品| 日韩精品中文字幕一区| 一区二区三区在线观看动漫| 久久激情综合网| 欧美日韩中字一区| 国产精品女主播在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 播五月开心婷婷综合| 欧美r级在线观看| 一区二区三区四区中文字幕| 国产精品自在欧美一区| 日韩精品一区二区在线观看| 亚洲一区二区三区在线| 91老师国产黑色丝袜在线| 久久精品这里都是精品| 美国一区二区三区在线播放| 色久综合一二码| 国产精品妹子av| 国产很黄免费观看久久| 欧美成人免费网站| 午夜精品在线视频一区| 91久久国产综合久久| 国产精品水嫩水嫩| 国产盗摄女厕一区二区三区| 精品剧情v国产在线观看在线| 亚洲福利视频一区二区| 欧美日韩午夜在线视频| 一区二区三区日韩在线观看| 97se狠狠狠综合亚洲狠狠| 成人免费在线播放视频| thepron国产精品| 国产精品国产精品国产专区不片| 国产精品性做久久久久久| 久久精品日韩一区二区三区| 国产麻豆一精品一av一免费| 久久综合色婷婷| 国产在线精品不卡| 亚洲国产精品av| 99久久夜色精品国产网站| 综合久久久久久| 在线免费亚洲电影| 日韩主播视频在线| 精品动漫一区二区三区在线观看| 日韩av不卡一区二区| 精品久久久久久久人人人人传媒 | 亚洲精品美国一| 91福利视频网站| 亚洲成人自拍网| 日韩欧美国产不卡| 岛国一区二区在线观看| 亚洲精品免费播放| 在线播放日韩导航| 国产成人免费视频网站 | 国产精品网友自拍| www.亚洲色图| 午夜伦理一区二区| 久久久精品tv| 欧美剧情片在线观看| 韩日欧美一区二区三区| 精品88久久久久88久久久| 国产a精品视频| 亚洲高清中文字幕| 精品国产乱码久久久久久久| 大美女一区二区三区| 亚洲高清在线精品| 久久精品网站免费观看| 91亚洲大成网污www| 亚欧色一区w666天堂| 精品国产一区二区三区不卡| 风间由美一区二区av101| 一区二区三区四区高清精品免费观看| 538在线一区二区精品国产| 国产·精品毛片| 日韩成人精品视频| 亚洲欧美日韩国产手机在线| 亚洲精品一区二区三区蜜桃下载| 99re66热这里只有精品3直播| 首页国产丝袜综合| 国产精品短视频| 2021国产精品久久精品| 欧美视频一区二区在线观看| 国产精品一级片在线观看| 亚洲午夜免费电影| 国产欧美久久久精品影院| 正在播放一区二区| 91国产免费观看| 大白屁股一区二区视频| 美女视频黄久久| 天天色图综合网| 亚洲黄色小说网站| 国产精品美日韩| 国产三级精品在线| 欧美大片在线观看一区二区| 欧美三区在线观看| 一本到三区不卡视频| 成人av资源在线| 国产福利91精品一区二区三区| 日韩av不卡在线观看| 天天影视涩香欲综合网| 亚洲综合男人的天堂| 亚洲欧洲精品一区二区三区不卡| 久久蜜桃香蕉精品一区二区三区| 制服丝袜激情欧洲亚洲| 欧美日韩一区二区三区四区五区 | 国产999精品久久久久久绿帽| 免费成人在线观看视频| 日本特黄久久久高潮| 日韩国产精品久久久久久亚洲| 亚洲国产精品影院| 亚洲一区二区三区国产| 亚洲精品欧美综合四区| 中文字幕亚洲欧美在线不卡| 亚洲国产精品黑人久久久| 国产精品成人免费精品自在线观看| 国产亚洲1区2区3区| 欧美激情一区二区三区| 国产欧美一区二区三区鸳鸯浴| 久久精品无码一区二区三区| 久久久不卡网国产精品二区 | 欧美色国产精品| 911精品国产一区二区在线| 91精品一区二区三区久久久久久 | 久久99精品久久久| 精品在线观看免费| 风间由美性色一区二区三区| 国产精选一区二区三区| 91麻豆产精品久久久久久 | 精品久久久久久无| 久久天天做天天爱综合色| 国产午夜亚洲精品不卡| 国产精品国产三级国产| 亚洲国产成人av网| 激情深爱一区二区| 成人97人人超碰人人99| 欧美日韩一级黄| 精品久久国产97色综合| 亚洲天堂精品在线观看| 亚洲 欧美综合在线网络| 狠狠色丁香婷婷综合久久片| 成人丝袜高跟foot| 欧美丰满少妇xxxxx高潮对白| 日韩精品资源二区在线| 亚洲欧美激情视频在线观看一区二区三区| 亚洲女同一区二区| 裸体一区二区三区| 不卡一区二区中文字幕| 欧美丰满一区二区免费视频| 国产精品污www在线观看| 亚洲图片欧美视频| 国产精品一区二区男女羞羞无遮挡| 91影院在线免费观看| 欧美xfplay| 一区二区三区在线免费播放| 国产一区二区免费看| 欧美日韩精品免费| 国产精品美女久久久久久久久久久 | 国产一区二区三区久久久|