List of all members.
Classes |
struct | MsiXTableEntry |
Public Member Functions |
void | read_all_bars (unsigned bdf, unsigned long *base, unsigned long *size) |
void | read_all_vf_bars (unsigned bdf, unsigned vf_no, unsigned long *base, unsigned long *size) |
| Read all vf bars.
|
bool | receive (MessageIOIn &msg) |
bool | receive (MessageIOOut &msg) |
bool | receive (MessagePciConfig &msg) |
bool | receive (MessageIrq &msg) |
bool | receive (MessageIrqNotify &msg) |
bool | receive (MessageMem &msg) |
bool | receive (MessageMemRegion &msg) |
bool | receive (MessageLegacy &msg) |
| DirectPciDevice (Motherboard &mb, unsigned hbdf, unsigned guestbdf, bool assign, bool use_irqs=true, unsigned parent_bdf=0, unsigned vf_no=0, bool map=true) |
Detailed Description
Directly-assigned PCI device.
Copyright (C) 2007-2010, Bernhard Kauer <bk@vmmon.org> Economic rights: Technische Universitaet Dresden (Germany)
This file is part of Vancouver.
Vancouver is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
Vancouver is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details. Directly assign a host PCI device to the guest.
State: testing Features: pcicfgspace, ioport operations, memory read/write, host irq, mem-alloc, DMA remapping Missing: MSI, MSI-X Documentation: PCI spec v.2.2
Constructor & Destructor Documentation
DirectPciDevice::DirectPciDevice |
( |
Motherboard & |
mb, |
|
|
unsigned |
hbdf, |
|
|
unsigned |
guestbdf, |
|
|
bool |
assign, |
|
|
bool |
use_irqs = true , |
|
|
unsigned |
parent_bdf = 0 , |
|
|
unsigned |
vf_no = 0 , |
|
|
bool |
map = true | |
|
) |
| | [inline] |
Member Function Documentation
void DirectPciDevice::read_all_bars |
( |
unsigned |
bdf, |
|
|
unsigned long * |
base, |
|
|
unsigned long * |
size | |
|
) |
| | [inline] |
void DirectPciDevice::read_all_vf_bars |
( |
unsigned |
bdf, |
|
|
unsigned |
vf_no, |
|
|
unsigned long * |
base, |
|
|
unsigned long * |
size | |
|
) |
| | [inline] |
bool DirectPciDevice::receive |
( |
MessageMem & |
msg |
) |
[inline] |
bool DirectPciDevice::receive |
( |
MessageIrq & |
msg |
) |
[inline] |
bool DirectPciDevice::receive |
( |
MessageIOOut & |
msg |
) |
[inline] |
bool DirectPciDevice::receive |
( |
MessageIOIn & |
msg |
) |
[inline] |
Disable Busmaster DMA on reset. Thus the device can not do DMA anymore.
XXX OSes are buggy and enable this bit to early, thus we have to reset the PCI device here!
Member Data Documentation
The documentation for this class was generated from the following file: