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

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

?? ata.h

?? IDE-ATA硬盤驅動器的ARM控制源代碼
?? H
字號:
/*! \file ata.h \brief IDE-ATA hard disk interface driver. */
//*****************************************************************************
//
// File Name	: 'ata.h'
// Title		: IDE-ATA interface driver for hard disks
// Author		: Pascal Stang
// Date			: 11/22/2000
// Revised		: 4/2/2004
// Version		: 0.1
// Target MCU	: any
// Editor Tabs	: 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested.  Nonetheless, you can expect most functions to work.
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************


#ifndef ATA_H
#define ATA_H

#include "global.h"
#include "atadev.h"
#include "ataconf.h"

// constants
#define DRIVE0		0

#define STANDBY		0
#define SLEEP		1
#define IDLE		2

// ATA status register bits
#define ATA_SR_BSY		0x80
#define ATA_SR_DRDY		0x40
#define ATA_SR_DF		0x20
#define ATA_SR_DSC		0x10
#define ATA_SR_DRQ		0x08
#define ATA_SR_CORR		0x04
#define ATA_SR_IDX		0x02
#define ATA_SR_ERR		0x01

// ATA error register bits
#define ATA_ER_UNC		0x40
#define ATA_ER_MC		0x20
#define ATA_ER_IDNF		0x10
#define ATA_ER_MCR		0x08
#define ATA_ER_ABRT		0x04
#define ATA_ER_TK0NF	0x02
#define ATA_ER_AMNF		0x01

// ATA head register bits
#define ATA_HEAD_USE_LBA	0x40

// ATA commands
#define ATA_CMD_READ			0x20
#define ATA_CMD_READNR			0x21
#define ATA_CMD_WRITE			0x30
#define ATA_CMD_WRITENR			0x31
#define ATA_CMD_IDENTIFY		0xEC
#define ATA_CMD_RECALIBRATE		0x10
#define ATA_CMD_SPINDOWN		0xE0	// spin down disk immediately
#define ATA_CMD_SPINUP			0xE1	// spin up disk immediately
#define ATA_CMD_STANDBY_5SU		0xE2	// spin down disk and set auto-power-down timer (sectorcount*5sec)
#define ATA_CMD_IDLE_5SU		0xE3	// keep disk spinning and set auto-power-down timer (sectorcount*5sec)
#define ATA_CMD_SLEEP			0xE6	// sleep disk (wakeup only on HW or SW reset)
#define ATA_CMD_STANDBY_01SU	0xF2	// spin down disk and set auto-power-down timer (sectorcount*0.1sec)
#define ATA_CMD_IDLE_01SU		0xF3	// keep disk spinning and set auto-power-down timer (sectorcount*0.1sec)


// ATA CHS disk parameters (examples, now we autodetect)
#define ATA_DISKPARM_CLYS		0x03A6	// number of cylinders per platter
#define ATA_DISKPARM_HEADS		0x10	// number of heads (usable plater sides)
#define ATA_DISKPARM_SECTORS	0x11	// number of sectors per head per cylinder

// ATA Identity fields
// all offsets refer to word offset (2 byte increments)
#define ATA_IDENT_DEVICETYPE	0		// specifies ATA/ATAPI, removable/non-removable
#define ATA_IDENT_CYLINDERS		1		// number of logical cylinders
#define ATA_IDENT_HEADS			3		// number of logical heads
#define ATA_IDENT_SECTORS		6		// number of sectors per track
#define ATA_IDENT_SERIAL		10		// drive serial number (20 characters)
#define ATA_IDENT_FIRMWAREREV	23		// drive firmware revision (8 characters)
#define ATA_IDENT_MODEL			27		// drive model name (40 characters)
#define ATA_IDENT_FIELDVALID	53		// indicates field validity of higher words (bit0: words54-58, bit1: words 64-70)
#define ATA_IDENT_LBASECTORS	60		// number of sectors in LBA translation mode

// drive mode defines (for ataSetDrivePowerMode() )
#define ATA_DISKMODE_SPINDOWN	0
#define ATA_DISKMODE_SPINUP		1
#define ATA_DISKMODE_SETTIMEOUT	2
#define ATA_DISKMODE_SLEEP		3

// typedefs
// drive info structure
struct DiskInfo
{
	DevBlock_t ataif;
	unsigned long sizeinsectors;
	unsigned short cylinders;
	unsigned char heads;
	unsigned char sectors;
	unsigned char LBAsupport;
	unsigned char driveno;
	char model[41];
} GNUC_PACKED;

typedef struct DiskInfo DiskInfo_t;

// Prototypes
void ataInit(DiskInfo_t* disk, DevBlock_t ataif, unsigned char driveno);
void ataDriveInit(DiskInfo_t* disk);

void ataDriveSelect(DiskInfo_t* disk);
void ataSetDrivePowerMode(DiskInfo_t* disk, u08 mode, u08 timeout);

void ataShowRegisters(DiskInfo_t* disk);
u08  ataSWReset(DiskInfo_t* disk);
void ataDiskErr(DiskInfo_t* disk);
u08 ataStatusWait(DiskInfo_t* disk, u08 mask, u08 waitStatus);

// read and write routines for CHS based drives
unsigned char ataReadSectorsCHS(	DiskInfo_t* disk,
									unsigned char Head, 
									unsigned int Track,
									unsigned char Sector,
									unsigned int numsectors,
									unsigned char *Buffer);

unsigned char ataWriteSectorsCHS(	DiskInfo_t* disk,
									unsigned char Head, 
									unsigned int Track,
									unsigned char Sector,
									unsigned int numsectors,
									unsigned char *Buffer);

// read and write routines for LBA based drives
unsigned char ataReadSectorsLBA(	DiskInfo_t* disk,
									unsigned long lba,
									unsigned int numsectors,
                            		unsigned char *Buffer);

unsigned char ataWriteSectorsLBA(	DiskInfo_t* disk,
									unsigned long lba,
									unsigned int numsectors,
                            		unsigned char *Buffer);

// generic read and write routines using LBA
//   uses native or translated LBA addressing
//   given autodetected drive type
unsigned char ataReadSectors(	DiskInfo_t* disk, 
								unsigned long lba,
								unsigned int numsectors,
                            	unsigned char *Buffer);

unsigned char ataWriteSectors(	DiskInfo_t* disk, 
								unsigned long lba,
								unsigned int numsectors,
                            	unsigned char *Buffer);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩经典中文字幕一区| 日韩av一级电影| 亚洲欧美日本韩国| 久久色中文字幕| 欧美激情一区二区三区全黄| 欧美精品一区二区在线播放| 日韩女优电影在线观看| 26uuu色噜噜精品一区| 精品国产一区二区三区忘忧草 | 色欧美片视频在线观看在线视频| 日韩欧美一级二级三级久久久| 亚洲精品在线观看视频| 中文字幕av一区二区三区| 亚洲嫩草精品久久| 麻豆国产欧美一区二区三区| 久久国产人妖系列| 97精品视频在线观看自产线路二| 国产91丝袜在线播放0| 91精品国产福利| 久久久亚洲高清| 午夜精品久久久久久久久久久| 成人免费高清视频| 色偷偷成人一区二区三区91| 国产亚洲人成网站| 亚洲一区视频在线观看视频| 国产一区二区免费看| 在线亚洲免费视频| 中文字幕一区二区三区四区不卡 | 91黄色激情网站| 国产午夜精品一区二区三区视频| 亚洲高清视频中文字幕| 精品无人码麻豆乱码1区2区| 91国在线观看| 免费国产亚洲视频| 91色.com| 亚洲在线观看免费视频| 国产在线精品一区二区不卡了| 91久久久免费一区二区| 国产精品色哟哟| 日韩av在线发布| 国产很黄免费观看久久| 欧美精品一区二区久久久| 日本vs亚洲vs韩国一区三区| 欧美色倩网站大全免费| 亚洲欧洲国产专区| 不卡高清视频专区| 亚洲一区二区综合| 色婷婷av一区二区三区软件| 中文字幕欧美一| 日本韩国视频一区二区| 亚洲愉拍自拍另类高清精品| 成人av手机在线观看| 国产精品美女久久久久久久 | 国产乱国产乱300精品| 日韩一区精品字幕| 欧美国产97人人爽人人喊| av资源站一区| 日本亚洲三级在线| 国产精品国产a级| 欧美日韩视频在线观看一区二区三区 | 欧美又粗又大又爽| 亚洲精品欧美综合四区| 日本道免费精品一区二区三区| 国产天堂亚洲国产碰碰| 91蜜桃免费观看视频| 一区二区三区高清在线| 欧美视频第二页| 久久爱另类一区二区小说| 国产亚洲成aⅴ人片在线观看 | 欧美日韩国产高清一区二区| 天堂va蜜桃一区二区三区| 欧美成人r级一区二区三区| 丰满少妇久久久久久久| 亚洲欧美视频在线观看| 日韩天堂在线观看| 色综合久久综合中文综合网| 日日噜噜夜夜狠狠视频欧美人| 在线播放一区二区三区| 成人av电影在线| 亚洲欧洲无码一区二区三区| 成人美女在线观看| 午夜精品成人在线视频| 国产亚洲精品bt天堂精选| 51精品国自产在线| 国产精品一级在线| 麻豆精品久久久| 午夜精彩视频在线观看不卡| 国产精品久久影院| 久久久精品国产免费观看同学| 欧美日本在线视频| 欧美午夜宅男影院| 91蝌蚪porny| 91网站黄www| 国产成人免费视频一区| 国产综合色在线| 91久久线看在观草草青青| 一本到三区不卡视频| 91精品国产欧美一区二区成人| 26uuu国产在线精品一区二区| 日本一区二区三区高清不卡| 亚洲美女屁股眼交3| 国产盗摄精品一区二区三区在线 | 国产精品久久看| 91免费视频网| 成人av网址在线观看| 欧美制服丝袜第一页| 欧美午夜精品免费| 欧美精品一区二区三区久久久| 欧美精品一区二区三区高清aⅴ| 国产午夜精品久久| 伊人性伊人情综合网| 日韩电影一区二区三区四区| 日韩电影网1区2区| 99精品国产一区二区三区不卡| 久久精品国产99久久6| 久久99精品久久久久| 成人自拍视频在线| 欧美成人精精品一区二区频| 国产精品久久久一区麻豆最新章节| 亚洲国产中文字幕| 91精品福利在线一区二区三区| 久久亚洲春色中文字幕久久久| 一区二区三区日韩精品视频| 国产91综合网| 久久久九九九九| 粉嫩13p一区二区三区| 国内久久精品视频| 久久综合99re88久久爱| 亚洲青青青在线视频| 日本人妖一区二区| 色综合夜色一区| 一级精品视频在线观看宜春院| 亚洲va天堂va国产va久| 国产一区二区在线观看免费| 欧美精品久久一区二区三区| 7777女厕盗摄久久久| 一本高清dvd不卡在线观看 | 精品一区二区在线观看| 免费成人在线播放| 国产suv一区二区三区88区| 成人天堂资源www在线| 在线看国产一区二区| 亚洲国产中文字幕| 国产成人免费在线观看| 欧美午夜精品免费| 欧美日韩国产综合草草| 日韩一区中文字幕| 国产精品乡下勾搭老头1| 欧美伦理视频网站| 一区二区免费看| 国产福利91精品一区二区三区| 欧美日韩一级大片网址| 中文字幕中文字幕一区| 国产乱码精品1区2区3区| 精品国精品自拍自在线| 日韩中文字幕麻豆| 91精品国产综合久久福利软件 | 不卡电影一区二区三区| 精品国产123| 国产aⅴ综合色| 国产精品传媒入口麻豆| 91麻豆精品视频| 亚洲柠檬福利资源导航| 欧美日韩激情一区二区三区| 久久精品网站免费观看| 国产成人av福利| 亚洲免费观看高清完整版在线观看 | 99久久伊人久久99| wwww国产精品欧美| 99re66热这里只有精品3直播| 久久久不卡影院| 欧美视频一区二区在线观看| 日日摸夜夜添夜夜添精品视频| 69堂成人精品免费视频| 国产一区二区三区香蕉| 一区二区三区**美女毛片| 日韩一区二区三区电影| www.亚洲免费av| 中文在线一区二区| 欧美三级蜜桃2在线观看| 狠狠色丁香婷综合久久| 欧美一级一区二区| 99国产精品久久久| 国产成人综合亚洲网站| 美女网站视频久久| 亚洲裸体xxx| 欧美大肚乱孕交hd孕妇| 99精品视频在线播放观看| 久久精品国产色蜜蜜麻豆| 日韩视频一区二区三区| 91亚洲国产成人精品一区二三| 亚洲一区影音先锋| 亚洲国产乱码最新视频| 国产精品每日更新| 99精品久久久久久| 99久久久精品免费观看国产蜜| 久久国产精品色| 久久精品国产第一区二区三区| 美女视频免费一区| 婷婷一区二区三区|