NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VirtualBiosDisk Class Reference

Virtual Bios disk routines. More...

Inheritance diagram for VirtualBiosDisk:
StaticReceiver< VirtualBiosDisk > BiosCommon Device DiscoveryHelper< BiosCommon >

Public Member Functions

bool receive (MessageDiskCommit &msg)
 Get disk commit.
bool receive (MessageTimeout &msg)
 Get disk timeout.
bool receive (MessageBios &msg)
 VirtualBiosDisk (Motherboard &mb)
- Public Member Functions inherited from StaticReceiver< VirtualBiosDisk >
 StaticReceiver ()
- Public Member Functions inherited from Device
void debug_dump ()
 Device (const char *debug_name)

Private Types

enum  {
  MAX_DISKS = 8, MAGIC_DISK_TAG = ~0u, FREQ = 1000, DISK_TIMEOUT = 5000,
  DISK_COMPLETION_CODE = 0x79, DISK_COUNT = 0x75, WAKEUP_IRQ = 1
}

Private Member Functions

void init_params ()
bool check_drive (MessageBios &msg, unsigned &disk_nr)
bool disk_op (MessageBios &msg, unsigned disk_nr, unsigned long long blocknr, unsigned long address, unsigned count, bool write)
 Read/Write disk helper.
bool boot_from_disk (MessageBios &msg)
bool handle_int13 (MessageBios &msg)
 Disk INT.

Private Attributes

unsigned _timer
DiskParameter _disk_params [MAX_DISKS]
unsigned _disk_count
bool _diskop_inprogress

Additional Inherited Members

- Public Types inherited from BiosCommon
enum  { RESET_VECTOR = 0x100, MAX_VECTOR }
- Static Public Member Functions inherited from StaticReceiver< VirtualBiosDisk >
static bool receive_static (Device *o, M &msg)
- Static Public Member Functions inherited from DiscoveryHelper< BiosCommon >
static bool discover (Device *o, MessageDiscovery &msg)
- Public Attributes inherited from BiosCommon
Motherboard_mb
- Protected Member Functions inherited from BiosCommon
void write_bda (unsigned short offset, unsigned value, unsigned len)
 Write bios data helper.
unsigned read_bda (unsigned offset)
 Read bios data helper.
bool jmp_int (MessageBios &msg, unsigned char number)
 Jump to another realmode INT handler.
bool jmp_hlt (MessageBios &msg)
void error (MessageBios &msg, unsigned char errorcode)
 Set the usual error indication.
void outb (unsigned short port, unsigned value)
 Out to IO-port.
 BiosCommon (Motherboard &mb)

Detailed Description

Virtual Bios disk routines.

Features: int13, boot from disk Missing: multiple disks

Member Enumeration Documentation

anonymous enum
private
Enumerator:
MAX_DISKS 
MAGIC_DISK_TAG 
FREQ 
DISK_TIMEOUT 
DISK_COMPLETION_CODE 
DISK_COUNT 
WAKEUP_IRQ 

Constructor & Destructor Documentation

VirtualBiosDisk::VirtualBiosDisk ( Motherboard mb)
inline

Member Function Documentation

bool VirtualBiosDisk::boot_from_disk ( MessageBios msg)
inlineprivate
bool VirtualBiosDisk::check_drive ( MessageBios msg,
unsigned &  disk_nr 
)
inlineprivate
bool VirtualBiosDisk::disk_op ( MessageBios msg,
unsigned  disk_nr,
unsigned long long  blocknr,
unsigned long  address,
unsigned  count,
bool  write 
)
inlineprivate

Read/Write disk helper.

bool VirtualBiosDisk::handle_int13 ( MessageBios msg)
inlineprivate

Disk INT.

void VirtualBiosDisk::init_params ( )
inlineprivate
bool VirtualBiosDisk::receive ( MessageDiskCommit msg)
inline

Get disk commit.

bool VirtualBiosDisk::receive ( MessageTimeout msg)
inline

Get disk timeout.

bool VirtualBiosDisk::receive ( MessageBios msg)
inline

Member Data Documentation

unsigned VirtualBiosDisk::_disk_count
private
DiskParameter VirtualBiosDisk::_disk_params[MAX_DISKS]
private
bool VirtualBiosDisk::_diskop_inprogress
private
unsigned VirtualBiosDisk::_timer
private

The documentation for this class was generated from the following file: