libce
Libreria di Calcolatori Elettronici
|
namespace per le risorse legate all'hard disk Continua...
Tipi enumerati (enum) | |
enum | cmd { WRITE_SECT = 0x30 , READ_SECT = 0x20 , WRITE_DMA = 0xCA , READ_DMA = 0xC8 } |
Possibili valori da scrivere nel registro di comando dell'hard disk. Continua... | |
Funzioni | |
void | ack () |
Azione di risposta alla richiesta di interruzione dell'interfaccia dell'hard disk. | |
void | disable_intr () |
Disabilita l'interfaccia dell'hard disk a generare richieste di interruzione. | |
void | enable_intr () |
Abilita l'interfaccia dell'hard disk a generare richieste di interruzione. | |
void | set_lba (natl lba) |
Scompone un Logical Block Address e lo scrive in SNR, CNL, CNH e HND. | |
void | start_cmd (natl lba, natb quanti, cmd cmd) |
Avvia una operazione sull'hard disk. | |
void | wait_for_br () |
Attende che il registro BR sia disponibile. | |
void | output_sect (natb *buf) |
Scrive un settore nel buffer interno dell'interfaccia dell'hard disk. | |
void | input_sect (natb *buf) |
Legge un settore dal buffer interno dell'interfaccia dell'hard disk. | |
Variabili | |
registri del controllore ATA (primario) | |
const ioaddr | iBR = 0x01F0 |
Buffer Register. | |
const ioaddr | iERR = 0x01F1 |
Error Register. | |
const ioaddr | iSCR = 0x01F2 |
Sector Count Register. | |
const ioaddr | iSNR = 0x01F3 |
Sector Number Register. | |
const ioaddr | iCNL = 0x01F4 |
Cylinder Number Low. | |
const ioaddr | iCNH = 0x01F5 |
Cylinder Number High. | |
const ioaddr | iHND = 0x01F6 |
Head Number and Device. | |
const ioaddr | iCMD = 0x01F7 |
Command Register. | |
const ioaddr | iSTS = 0x01F7 |
Status Register. | |
const ioaddr | iDCR = 0x03F6 |
Device Control Register. | |
const ioaddr | iASR = 0x03F6 |
Alternate Status Register. | |
namespace per le risorse legate all'hard disk
enum hd::cmd |
void hd::input_sect | ( | natb * | buf | ) |
Legge un settore dal buffer interno dell'interfaccia dell'hard disk.
buf | buffer che dovrà ricevere il settore |
void hd::output_sect | ( | natb * | buf | ) |
Scrive un settore nel buffer interno dell'interfaccia dell'hard disk.
buf | buffer contenente il settore da scrivere |
Avvia una operazione sull'hard disk.
lba | logical block address del primo settore |
quanti | numero di settori |
cmd | codice del comando |
Definizione alla linea 5 del file start_cmd.cpp.