?? idedrv.h
字號(hào):
/* ideDrv.h - IDE disk controller header *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------01d,30oct01,dat Adding warning about driver being obsolete01c,25oct94,hdn added ideRawio() function prototype.01b,10oct94,hdn added IDE_RAW structure for ideRawio().01a,19oct93,hdn written.*/#ifndef __INCideDrvh#define __INCideDrvh#ifdef __cplusplusextern "C" {#endif#warning "The ideDrv is replaced by ataDrv. Please use ataDrv instead"#ifndef _ASMLANGUAGE#include "blkIo.h"typedef struct ideDev { BLK_DEV blkDev; int drive; /* drive no. 0 - 1 */ int blkOffset; /* sector offset */ } IDE_DEV;typedef struct ideType { int cylinders; /* number of cylinders */ int heads; /* number of heads */ int sectorsTrack; /* number of sectors per track */ int bytesSector; /* number of bytes per sector */ int precomp; /* precompensation cylinder */ } IDE_TYPE;typedef struct ideParams { short config; /* general configuration */ short cylinders; /* number of cylinders */ short removcyl; /* number of removable cylinders */ short heads; /* number of heads */ short bytesTrack; /* number of unformatted bytes/track */ short bytesSec; /* number of unformatted bytes/sector */ short sectorsTrack; /* number of sectors/track */ short bytesGap; /* minimum bytes in intersector gap */ short bytesSync; /* minimum bytes in sync field */ short vendstat; /* number of words of vendor status */ char serial[20]; /* controller serial number */ short type; /* controller type */ short size; /* sector buffer size, in sectors */ short bytesEcc; /* ecc bytes appended */ char rev[8]; /* firmware revision */ char model[40]; /* model name */ short nsecperint; /* sectors per interrupt */ short usedmovsd; /* can use double word read/write? */ short spare[207]; /* */ } IDE_PARAM;typedef struct ideRaw { /* this is for IDERAWACCESS ioctl */ UINT cylinder; /* cylinder (0 -> (cylindres-1)) */ UINT head; /* head (0 -> (heads-1)) */ UINT sector; /* sector (1 -> sectorsTrack) */ char *pBuf; /* pointer to buffer (bytesSector * nSecs) */ UINT nSecs; /* number of sectors (1 -> sectorsTrack) */ UINT direction; /* read=0, write=1 */ } IDE_RAW;/* max number of IDE drives */#define IDE_MAX_DRIVES 2/* IDE registers */#define IDE_DATA 0x1f0 /* (RW) data register (16 bits) */#define IDE_ERROR 0x1f1 /* (R) error register */#define IDE_PRECOMP 0x1f1 /* (W) write precompensation */#define IDE_SECCNT 0x1f2 /* (RW) sector count */#define IDE_SECTOR 0x1f3 /* (RW) first sector number */#define IDE_CYL_LO 0x1f4 /* (RW) cylinder low byte */#define IDE_CYL_HI 0x1f5 /* (RW) cylinder high byte */#define IDE_SDH 0x1f6 /* (RW) sector size/drive/head */#define IDE_COMMAND 0x1f7 /* (W) command register */#define IDE_STATUS 0x1f7 /* (R) immediate status */#define IDE_A_STATUS 0x3f6 /* (R) alternate status */#define IDE_D_CONTROL 0x3f6 /* (W) disk controller control */#define IDE_D_ADDRESS 0x3f7 /* (R) disk controller address *//* diagnostic code */#define DIAG_OK 0x01/* control register */#define CTL_4BIT 0x8 /* use 4 head bits (wd1003) */#define CTL_RST 0x4 /* reset controller */#define CTL_IDS 0x2 /* disable interrupts *//* status register */#define STAT_BUSY 0x80 /* controller busy */#define STAT_READY 0x40 /* selected drive ready */#define STAT_WRTFLT 0x20 /* write fault */#define STAT_SEEKCMPLT 0x10 /* seek complete */#define STAT_DRQ 0x08 /* data request */#define STAT_ECCCOR 0x04 /* ECC correction made in data */#define STAT_INDEX 0x02 /* index pulse from selected drive */#define STAT_ERR 0x01 /* error detect *//* size/drive/head register */#define SDH_IBM 0xa0 /* 512 bytes sector, ecc *//* commands */#define CMD_RECALIB 0x10 /* recalibrate */#define CMD_SEEK 0x70 /* seek */#define CMD_READ 0x20 /* read sectors with retries */#define CMD_WRITE 0x30 /* write sectors with retries */#define CMD_FORMAT 0x50 /* format track */#define CMD_DIAGNOSE 0x90 /* execute controller diagnostic */#define CMD_INITP 0x91 /* initialize drive parameters */#define CMD_READP 0xEC /* identify *//* function declarations */#if defined(__STDC__) || defined(__cplusplus)STATUS ideDrv (int vector, int level, BOOL manualConfig);BLK_DEV *ideDevCreate (int drive, int nBlks, int offset);STATUS ideRawio (int drive, IDE_RAW *pIdeRaw);#elseSTATUS ideDrv ();BLK_DEV *ideDevCreate ();STATUS ideRawio ();#endif /* __STDC__ */#endif /* _ASMLANGUAGE */#ifdef __cplusplus}#endif#endif /* __INCideDrvh */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -