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

Zygoma::ia32 Namespace Reference


Classes

class  LocalApic
 A description of the Local Advanced Programmable Interrupt Controller. More...
class  Descriptor
 A segment descriptor is a data structure in a GDT or LDT that provides the processor with the size, location, type, and access control, and status of a memory segment. More...
class  TaskGate
class  InterruptGate
class  TrapGate
 Identical to Interrupt Gate except m_type == 7. More...
class  IA32_Marrow
class  IDT
 An interrupt descriptor table implements a vectored interrupt dispatch mechanism. More...
class  IOApicRedirection
 An IO APIC redirection table entry. More...
class  IOApic
 A description of the I/O Advanced Programmable Interrupt Controller. More...
struct  MultibootHeader
 Header found in the OS image describing the OSs' needs to the bootloader. More...
struct  LoadModuleDescriptor
 Multiboot Load Module descriptor. More...
struct  MemoryMapDescriptor
 Multiboot System Memory Map descriptor. More...
struct  DiskDriveMapDescriptor
 Multiboot Disk Drive Map desriptor. More...
struct  MultibootInfo
 Structure passed to the OS by the multiboot loader on startup. More...
class  PageBaseEntry
class  PageDirectoryEntry
class  PageTableEntry
class  PageDirectory
class  PageTable
class  VgaStreambuf
 The VgaStreambuf providea a concrete basic_streambuf that sends its output to the VGA console. More...

Namespaces

namespace  Acpi
namespace  MPS
 This namespace comtains the software cluster for The Intel Multiprocessor Specification.

Typedefs

typedef int AtomicWord
 A platform-specific atomically-addressable value.
typedef bool(* InterruptHandlerTrampoline )(int interruptNumber)
 The type of the trampoline function for invoking an interrupt handler from an interrupt gate.
typedef VgaStreambuf< char > KStreamBuf
typedef unsigned long PhysicalAddress
 A physical address in the memory space.
typedef unsigned char u08
 A One-byte unsigned integral type.
typedef unsigned short u16
 A Two-byte unsigned integral type.
typedef unsigned long u32
 A Four-byte unsigned integral type.

Enumerations

enum  Faults {
  kFAULT_DIVIDE_ERROR = 0,
  kFAULT_RESERVED_1 = 1,
  kFAULT_NMI = 2,
  kFAULT_BREAKPOINT = 3,
  kFAULT_OVERFLOW = 4,
  kFAULT_BOUND_EXCEEDED = 5,
  kFAULT_INVALID_OPCODE = 6,
  kFAULT_DEVICE_NOT_AVAILABLE,
  kFAULT_DOUBLE_FAULT = 8,
  kFAULT_SEGMENT_OVERRUN = 9,
  kFAULT_INVALID_TSS = 10,
  kFAULT_SEGMENT_NOT_PRESENT,
  kFAULT_STACK_SEGMENT_FAULT,
  kFAULT_GENERAL_PROTECTION,
  kFAULT_PAGE_FAULT = 14,
  kFAULT_RESERVED_15,
  kFAULT_FPU_ERROR = 16,
  kFAULT_ALIGNMENT_CHECK,
  kFAULT_MACHINE_CHECK = 18,
  kFAULT_SIMD_EXCEPTION = 19,
  kFAULT_RESERVED_20
}
 Intel Protected-mode exceptions and interrupts. More...

Functions

std::ostream & operator<< (std::ostream &ostr, LocalApic &apic)
 Streams a local APIC to an output stream.
AtomicWord atomicExchange (volatile AtomicWord *mem, int value)
 Atomically exchanges the value found at "mem" with the value passed in as "value," returns the original value found at "mem".
AtomicWord atomicExchangeAndAdd (volatile AtomicWord *mem, int value)
 Atomically sets the value at "mem" to "value," returns the sum of "value" and the value originally found at "mem".
void atomicAdd (volatile AtomicWord *mem, int value)
 Atomically adds "value" to the value stored at "mem," stores result at "mem.
std::ostream & operator<< (std::ostream &ostr, const InterruptGate &gate)
 Dumps an interrupt gate to an output stream.
std::ostream & operator<< (std::ostream &ostr, const IDT &idt)
 Dumps an interrupt descriptor table to an output stream.
std::ostream & operator<< (std::ostream &ostr, IOApic &ioapic)
 Streams an IOAPIC to an output stream.
u32 endOfMemory (MultibootInfo *mbinfo)
 Calculates the end of physical memory from information supplied by the multiboot loader.
int vgaWriteChar (char c)
 Displays a character at the next cursor position on the VGA screen.

Variables

IDTgIDT
 Global access point for the system interrupt manager.
const unsigned int PAGE_FRAME_SIZE = 4096
MultibootInfog_multibootInfo
 A global pointer to the multiboot info table initialized by the loader.


Typedef Documentation

typedef bool(* Zygoma::ia32::InterruptHandlerTrampoline)(int interruptNumber)
 

The type of the trampoline function for invoking an interrupt handler from an interrupt gate.

typedef VgaStreambuf<char> Zygoma::ia32::KStreamBuf
 

typedef unsigned long Zygoma::ia32::PhysicalAddress
 

A physical address in the memory space.

The Physical Address is what's sent out along the physical address buf after all the logical and linear mapping has been done through the page table and segmentation and tar and feathers provided by the system to hide the physical addresses from the programmer.


Enumeration Type Documentation

enum Zygoma::ia32::Faults
 

Intel Protected-mode exceptions and interrupts.

Enumeration values:
kFAULT_DIVIDE_ERROR  DIV and IDIV instructions.
kFAULT_RESERVED_1  For Intel use only.
kFAULT_NMI  Nonmaskable external interrupt.
kFAULT_BREAKPOINT  INT 3 instruction.
kFAULT_OVERFLOW  INT 0 instruction.
kFAULT_BOUND_EXCEEDED  BOUND instruction.
kFAULT_INVALID_OPCODE  UD2 instruction or illegal opcode.
kFAULT_DEVICE_NOT_AVAILABLE  No math coprocessor + WAIT/FWAIT.
kFAULT_DOUBLE_FAULT  Any instruction.
kFAULT_SEGMENT_OVERRUN  Floating point instruction.
kFAULT_INVALID_TSS  Task switch or TSS access.
kFAULT_SEGMENT_NOT_PRESENT  Caused by memory access.
kFAULT_STACK_SEGMENT_FAULT  Caused by stack operations.
kFAULT_GENERAL_PROTECTION  Any memory reference can cause this.
kFAULT_PAGE_FAULT  Any memory reference.
kFAULT_RESERVED_15 
kFAULT_FPU_ERROR  x87 FPU error ow WAIT/FWAIT.
kFAULT_ALIGNMENT_CHECK  Any data reference in memory.
kFAULT_MACHINE_CHECK  System dependent.
kFAULT_SIMD_EXCEPTION  SSE and SSE2 fp instructions.
kFAULT_RESERVED_20 


Function Documentation

u32 Zygoma::ia32::endOfMemory MultibootInfo *  mbinfo  )  [inline]
 

Calculates the end of physical memory from information supplied by the multiboot loader.

Parameters:
mbinfo A pinter to a MultibootInfo structure.
Returns:
The address of the physical end of memory.

Here is the call graph for this function:

std::ostream& Zygoma::ia32::operator<< std::ostream &  ostr,
IOApic &  ioapic
[inline]
 

Streams an IOAPIC to an output stream.

Here is the call graph for this function:

std::ostream& Zygoma::ia32::operator<< std::ostream &  ostr,
const IDT &  idt
[inline]
 

Dumps an interrupt descriptor table to an output stream.

Parameters:
ostr [INOUT] The output stream.
idt [IN] The interrupt descriptor table.

Here is the call graph for this function:

std::ostream& Zygoma::ia32::operator<< std::ostream &  ostr,
const InterruptGate &  gate
[inline]
 

Dumps an interrupt gate to an output stream.

Parameters:
ostr [INOUT] The output stream.
gate [IN] The interrupt gate.

std::ostream& Zygoma::ia32::operator<< std::ostream &  ostr,
LocalApic &  apic
[inline]
 

Streams a local APIC to an output stream.

Here is the call graph for this function:

int Zygoma::ia32::vgaWriteChar char  c  ) 
 

Displays a character at the next cursor position on the VGA screen.

Parameters:
c [IN] The charcter to be displayed. Currently supports some sort of superset of US-ASCII.


Variable Documentation

Zygoma::ia32::MultibootInfo * Zygoma::ia32::g_multibootInfo
 

A global pointer to the multiboot info table initialized by the loader.

Zygoma::ia32::IDT * Zygoma::ia32::gIDT
 

Global access point for the system interrupt manager.

Todo:
make this better.

const unsigned int Zygoma::ia32::PAGE_FRAME_SIZE = 4096
 


Generated on Fri Sep 2 10:45:11 2005 for zygoma by doxygen 1.4.2