# hd.h

    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