00001 #include <ubixfs/ubixfs.h> 00002 00003 #ifndef _HD_H 00004 #define _HD_H 00005 00006 #define hdData 0x0 00007 #define hdError 0x1 00008 #define hdSecCount 0x2 00009 #define hdSecNum 0x3 00010 #define hdCylLow 0x4 00011 #define hdCylHi 0x5 00012 #define hdHead 0x6 00013 #define hdStat 0x7 00014 #define hdCmd 0x7 00015 00016 00017 struct driveInfo { 00018 struct driveDiskLabel *diskLabel; 00019 char hdSector[512]; 00020 char hdEnable; 00021 char hdDev; 00022 char hdFlags; 00023 char hdShift; 00024 long hdMask; 00025 long hdMulti; 00026 long hdPort; 00027 long hdSize; 00028 long hdCalc; 00029 }; 00030 00031 void initHardDisk(); 00032 void hdWrite(struct driveInfo *hdd,void *,uInt32,uInt32); 00033 void hdRead(struct driveInfo *hdd,void *,uInt32,uInt32); 00034 int hdReset(); 00035 int hdIoctl(); 00036 int hdStart(); 00037 int hdStop(); 00038 int hdStandby(); 00039 int hdInit(struct deviceNode *dev); 00040 00041 extern struct driveInfo *hdd0; 00042 extern struct driveInfo *hdd1; 00043 extern struct driveInfo *hdd2; 00044 extern struct driveInfo *hdd3; 00045 00046 #endif 00047