#include <ubixos/types.h>
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 cmdRecal (0x07) |
| #define fdcData (0x3f5) |
| #define fdcMsr (0x3f4) |
| 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.
Definition at line 303 of file fdc.c.
References fdcSpinLock, readBlock(), spinLock(), and spinUnlock().
Referenced by fdc_init().
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().
| void floppyIsr | ( | ) |
Referenced by fdc_init().
| void floppyIsrhndlr | ( | ) |
| int getByte | ( | ) |
| void motorOff | ( | void | ) |
| void motorOn | ( | void | ) |
Definition at line 207 of file fdc.c.
References FALSE, fdcDor, motor, outportByte(), and TRUE.
Referenced by fdcRw(), and recalibrate().
| void recalibrate | ( | void | ) |
Definition at line 280 of file fdc.c.
References cmdRecal, motorOff(), motorOn(), sendByte(), TRUE, and waitFdc().
| 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().
| bool seek | ( | int | track | ) |
| 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().
1.4.7