libce
Libreria di Calcolatori Elettronici
Caricamento in corso...
Ricerca in corso...
Nessun risultato
init.cpp
1#include "../internal.h"
2
3namespace apic {
4
5 bool init()
6 {
7 natb bus = 0, dev = 0, fun = 0;
8 if (!pci::find_dev(bus, dev, fun, piix3::DEVICE_ID, piix3::VENDOR_ID)) {
9 flog(LOG_ERR, "PIIX3 non trovato");
10 return false;
11 }
12 if (!piix3::ioapic_enable(bus, dev, fun)) {
13 flog(LOG_ERR, "Impossibile abilitare l'APIC nel PIIX3");
14 return false;
15 }
16 for (natb i = 0; i < IRQ_MAX; i++) {
17 write_rth(i, 0);
19 }
20 return true;
21 }
22
23}
unsigned char natb
naturale su un byte
Definition libce.h:42
void flog(log_sev sev, const char *fmt,...)
Invio di un messaggio formattato sul log.
Definition flog.cpp:6
@ LOG_ERR
errore
Definition libce.h:198
funzioni usate internamente
namespace per le risorse legate all'APIC
Definition EOIR.cpp:3
bool init()
Inizializza l'APIC.
Definition init.cpp:5
const natl MIRQ_BIT
bit della maschera (1=mascherato)
Definition internal.h:196
void write_rth(natb irq, natl w)
scrivi la parte alta di una riga della redirection table
Definition write_rth.cpp:5
void write_rtl(natb irq, natl w)
scrivi la parte bassa di una riga della redirection table
Definition write_rtl.cpp:5
const natl IRQ_MAX
numero di piedini per le richieste di interruzione
Definition internal.h:112
bool find_dev(natb &bus, natb &dev, natb &fun, natw vendorID, natw deviceID)
Trova una funzione PCI dato il vendor ID e il device ID.
Definition find_dev.cpp:5
const natw DEVICE_ID
Device ID del PIIX3.
Definition internal.h:463
bool ioapic_enable(natb bus, natb dev, natb fun)
Abilita l'accesso all'APIC tramite il PIIX3.
const natw VENDOR_ID
VendorID del PIIX3.
Definition internal.h:461