fdc.h File Reference

#include <ubixos/types.h>

Include dependency graph for fdc.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  DrvGeom

Defines

#define cmdRead   (0xe6)
#define cmdRecal   (0x07)
#define cmdSeek   (0x0f)
#define cmdSensei   (0x08)
#define cmdSpecify   (0x03)
#define cmdWrite   (0xc5)
#define dg144Gap3rw   0x1b
#define dg144Heads   2
#define dg144Spt   18
#define dg144Tracks   80
#define dg168Gap3rw   0x1c
#define fdcCcr   (0x3f7)
#define fdcData   (0x3f5)
#define fdcDir   (0x3f7)
#define fdcDor   (0x3f2)
#define fdcDrs   (0x3f4)
#define fdcMsr   (0x3f4)

Typedefs

typedef DrvGeom drvGeom

Functions

void block2Hts (int block, int *head, int *track, int *sector)
int fdc_init ()
void fdcRead (void *info, void *, uInt32 startSector, uInt32 sectorCount)
bool fdcRw (int block, Int8 *blockBuffer, bool read, unsigned long numSectors)
void fdcWrite (void *info, void *, uInt32 startSector, uInt32 sectorCount)
void floppyIsr ()
void floppyIsrhndlr ()
int getByte ()
void motorOff (void)
void motorOn (void)
bool readBlock (int block, Int8 *blockBuffer, unsigned long numSectors)
void recalibrate (void)
void reset (void)
bool seek (int track)
void sendByte (int Int8)
bool waitFdc (bool sensei)
bool writeBlock (int block, Int8 *blockBuffer, unsigned long numSectors)


Define Documentation

#define cmdRead   (0xe6)

Definition at line 50 of file fdc.h.

Referenced by fdcRw().

#define cmdRecal   (0x07)

Definition at line 53 of file fdc.h.

Referenced by recalibrate().

#define cmdSeek   (0x0f)

Definition at line 51 of file fdc.h.

Referenced by seek().

#define cmdSensei   (0x08)

Definition at line 52 of file fdc.h.

Referenced by waitFdc().

#define cmdSpecify   (0x03)

Definition at line 54 of file fdc.h.

Referenced by reset().

#define cmdWrite   (0xc5)

Definition at line 49 of file fdc.h.

Referenced by fdcRw().

#define dg144Gap3rw   0x1b

Definition at line 59 of file fdc.h.

Referenced by fdcRw().

#define dg144Heads   2

Definition at line 56 of file fdc.h.

#define dg144Spt   18

Definition at line 58 of file fdc.h.

Referenced by fdcRw().

#define dg144Tracks   80

Definition at line 57 of file fdc.h.

#define dg168Gap3rw   0x1c

Definition at line 60 of file fdc.h.

Referenced by fdcRw().

#define fdcCcr   (0x3f7)

Definition at line 45 of file fdc.h.

Referenced by fdcRw().

#define fdcData   (0x3f5)

Definition at line 43 of file fdc.h.

Referenced by getByte(), and sendByte().

#define fdcDir   (0x3f7)

Definition at line 44 of file fdc.h.

Referenced by fdcRw(), and waitFdc().

#define fdcDor   (0x3f2)

Definition at line 46 of file fdc.h.

Referenced by motorOn(), and reset().

#define fdcDrs   (0x3f4)

Definition at line 47 of file fdc.h.

#define fdcMsr   (0x3f4)

Definition at line 42 of file fdc.h.

Referenced by getByte(), sendByte(), and waitFdc().


Typedef Documentation

typedef struct DrvGeom drvGeom


Function Documentation

void block2Hts ( int  block,
int *  head,
int *  track,
int *  sector 
)

Definition at line 201 of file fdc.c.

References geometry, DrvGeom::heads, and DrvGeom::spt.

Referenced by fdcRw().

int fdc_init (  ) 

Definition at line 63 of file fdc.c.

References devfs_makeNode(), device_add(), dInt, dPresent, fdcInit2(), fdcRead(), fdcWrite(), floppyIsr(), device_interface::init, irqEnable(), kmalloc(), device_interface::major, mVec, device_interface::read, reset(), device_interface::reset, setVector(), and device_interface::write.

Here is the call graph for this function:

void fdcRead ( void *  info,
void *  ,
uInt32  startSector,
uInt32  sectorCount 
)

Definition at line 303 of file fdc.c.

References fdcSpinLock, readBlock(), spinLock(), and spinUnlock().

Referenced by fdc_init().

Here is the call graph for this function:

bool fdcRw ( int  block,
Int8 blockBuffer,
bool  read,
unsigned long  numSectors 
)

Definition at line 129 of file fdc.c.

References block2Hts(), cmdRead, cmdWrite, dg144Gap3rw, dg144Spt, dg168Gap3rw, diskChange, dmaXfer(), FALSE, fdcCcr, fdcDir, fdcRw(), geometry, inportByte(), kprint(), kprintf(), motorOff(), motorOn(), outportByte(), recalibrate(), reset(), seek(), sendByte(), DrvGeom::spt, status, tbaddr, TRUE, and waitFdc().

Referenced by fdcRw(), readBlock(), and writeBlock().

Here is the call graph for this function:

void fdcWrite ( void *  info,
void *  ,
uInt32  startSector,
uInt32  sectorCount 
)

Definition at line 309 of file fdc.c.

References writeBlock().

Referenced by fdc_init().

Here is the call graph for this function:

void floppyIsr (  ) 

Referenced by fdc_init().

void floppyIsrhndlr (  ) 

Definition at line 98 of file fdc.c.

References done, outportByte(), TRUE, and x20.

Here is the call graph for this function:

int getByte (  ) 

Definition at line 116 of file fdc.c.

References fdcData, fdcMsr, and inportByte().

Referenced by waitFdc().

Here is the call graph for this function:

void motorOff ( void   ) 

Definition at line 214 of file fdc.c.

References FALSE, motor, and TRUE.

Referenced by fdcRw(), and recalibrate().

void motorOn ( void   ) 

Definition at line 207 of file fdc.c.

References FALSE, fdcDor, motor, outportByte(), and TRUE.

Referenced by fdcRw(), and recalibrate().

Here is the call graph for this function:

bool readBlock ( int  block,
Int8 blockBuffer,
unsigned long  numSectors 
)

Definition at line 241 of file fdc.c.

References fdcRw(), and TRUE.

Referenced by fdcRead().

Here is the call graph for this function:

void recalibrate ( void   ) 

Definition at line 280 of file fdc.c.

References cmdRecal, motorOff(), motorOn(), sendByte(), TRUE, and waitFdc().

Referenced by fdcRw(), and reset().

Here is the call graph for this function:

void reset ( void   ) 

Definition at line 288 of file fdc.c.

References cmdSpecify, diskChange, done, FALSE, fdcDor, motor, outportByte(), recalibrate(), seek(), sendByte(), TRUE, and waitFdc().

Referenced by fdc_init(), and fdcRw().

Here is the call graph for this function:

bool seek ( int  track  ) 

Definition at line 222 of file fdc.c.

References cmdSeek, FALSE, fdcTrack, kprintf(), sendByte(), sr0, TRUE, waitFdc(), and x20.

Referenced by fdcRw(), and reset().

Here is the call graph for this function:

void sendByte ( int  Int8  ) 

Definition at line 103 of file fdc.c.

References fdcData, fdcMsr, inportByte(), and outportByte().

Referenced by fdcRw(), recalibrate(), reset(), seek(), and waitFdc().

Here is the call graph for this function:

bool waitFdc ( bool  sensei  ) 

Definition at line 256 of file fdc.c.

References cmdSensei, diskChange, done, FALSE, fdcDir, fdcMsr, fdcTrack, getByte(), inportByte(), sendByte(), sr0, statSize, status, timeOut, and TRUE.

Referenced by fdcRw(), recalibrate(), reset(), and seek().

Here is the call graph for this function:

bool writeBlock ( int  block,
Int8 blockBuffer,
unsigned long  numSectors 
)

Definition at line 252 of file fdc.c.

References FALSE, and fdcRw().

Referenced by fdcWrite().

Here is the call graph for this function:


Generated on Fri Dec 15 11:19:21 2006 for UbixOS V2 by  doxygen 1.4.7