Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ioapic.cpp File Reference


Detailed Description

Advanced System Interrupt Controller.

#include <arch/ioapic.h>
#include <memory.h>

Include dependency graph for ioapic.cpp:


Functions

 Zygoma::ia32::IOApic::IOApic ()
 Constructs the IOAPIC.
u32 Zygoma::ia32::IOApic::id () const
 Gets the physical name of the IOAPIC.
void Zygoma::ia32::IOApic::setId (u32 id)
 Sets the APIC bus ID of this device.
u32 Zygoma::ia32::IOApic::maxRedirectionEntry () const
 Gets the highest numbered interrupt pin on the IOAPIC (starts at zero).
u32 Zygoma::ia32::IOApic::version () const
 Identifies the hardware version of te IOAPIC.
u32 Zygoma::ia32::IOApic::arbitrationId () const
 Gets the current arbitration priority of the IOAPIC.
Zygoma::ia32::IOApicRedirection Zygoma::ia32::IOApic::redirection (int i) const
 Gets the interrupt redirection entry for the given interrupt line.
void Zygoma::ia32::IOApic::setRedirection (int i, Zygoma::ia32::IOApicRedirection entry)
 Sets the interrupt redirection entry for the given interrupt line.
std::ostream & Zygoma::ia32::IOApic::printStream (std::ostream &ostr) const
 Dumps a description of the IOAPIC to an output stream.

Variables

const u08 IOAPICID = 0x00
 < IOAPIC ID
const u08 IOAPICVER = 0x01
 < IOAPIC version
const u08 IOAPICARB = 0x02
 < IOAPIC arbitration ID
const u08 IOREDTBL = 0x10
 < base of redirection table

Function Documentation

u32 Zygoma::ia32::IOApic::arbitrationId  )  const
 

Gets the current arbitration priority of the IOAPIC.

This value is used among all the APICs on the bus to arbitrait bus ownership, using an autodecrement rotation scheme.

u32 Zygoma::ia32::IOApic::id  )  const
 

Gets the physical name of the IOAPIC.

All APIC devices in the system need to have a unique identification.

Zygoma::ia32::IOApic::IOApic  ) 
 

Constructs the IOAPIC.

u32 Zygoma::ia32::IOApic::maxRedirectionEntry  )  const
 

Gets the highest numbered interrupt pin on the IOAPIC (starts at zero).

std::ostream& Zygoma::ia32::IOApic::printStream std::ostream &  ostr  )  const
 

Dumps a description of the IOAPIC to an output stream.

Here is the call graph for this function:

Zygoma::ia32::IOApicRedirection Zygoma::ia32::IOApic::redirection int  i  )  const
 

Gets the interrupt redirection entry for the given interrupt line.

Parameters:
i [IN] The interrupt number.
Returns:
the redirection table entry for the indicated interrupt.

void Zygoma::ia32::IOApic::setId u32  id  ) 
 

Sets the APIC bus ID of this device.

Also sets the current arbitration ID at the same time.

Parameters:
id [IN] The new APIC bus ID. Only the low 4 bytes are used.

void Zygoma::ia32::IOApic::setRedirection int  i,
Zygoma::ia32::IOApicRedirection  entry
 

Sets the interrupt redirection entry for the given interrupt line.

Parameters:
i [IN] The interrupt number.
entry [IN] The new table entry.

u32 Zygoma::ia32::IOApic::version  )  const
 

Identifies the hardware version of te IOAPIC.


Variable Documentation

const u08 IOAPICARB = 0x02 [static]
 

< IOAPIC arbitration ID

const u08 IOAPICID = 0x00 [static]
 

< IOAPIC ID

const u08 IOAPICVER = 0x01 [static]
 

< IOAPIC version

const u08 IOREDTBL = 0x10 [static]
 

< base of redirection table

u32 m_hi
 

u32 m_id
 

u32 m_lo
 

u32 m_mre
 

u32 m_reserved_0
 

u32 m_reserved_24
 

u32 m_reserved_28
 

u32 m_reserved_8
 

u32 m_version
 

struct { ... } u_data
 

Zygoma::ia32::IOApicRedirection u_entry
 

struct { ... } u_id
 

struct { ... } u_ver
 


Generated on Fri Sep 2 10:44:46 2005 for zygoma by doxygen 1.4.2