Newer
Older
ubixos / src / sys / include / pci / hd.h
#include <ubixfs/ubixfs.h>

#ifndef _HD_H
#define _HD_H

#define hdData     0x0
#define hdError    0x1
#define hdSecCount 0x2
#define hdSecNum   0x3
#define hdCylLow   0x4
#define hdCylHi    0x5
#define hdHead     0x6
#define hdStat     0x7
#define hdCmd      0x7


struct driveInfo {
  struct driveDiskLabel *diskLabel;
  char hdSector[512];
  char hdEnable;
  char hdDev;
  char hdFlags;
  char hdShift;
  long hdMask;
  long hdMulti;
  long hdPort;
  long hdSize;
  long hdCalc;
  long parOffset;
  };

void initHardDisk();
void hdWrite(struct driveInfo *hdd,void *,uInt32,uInt32);
void hdRead(struct driveInfo *hdd,void *,uInt32,uInt32);
int hdReset();
int hdIoctl();
int hdStart();
int hdStop();
int hdStandby();
int hdInit(struct deviceNode *dev);

extern struct driveInfo *hdd0;
extern struct driveInfo *hdd1;
extern struct driveInfo *hdd2;
extern struct driveInfo *hdd3;

#endif