|
NOVA User-Level Environment
Version testbox/changed-memory-timing-317-g320d8b5
|
ATARE - ACPI table IRQ routing extraction. More...
Classes | |
| struct | NamedRef |
| struct | PciRoutingEntry |
| A single PCI routing entry. More... | |
Public Member Functions | |
| bool | receive (MessageAcpi &msg) |
| Atare (DBus< MessageAcpi > &bus_acpi, unsigned debug) | |
Public Member Functions inherited from StaticReceiver< Atare > | |
| StaticReceiver () | |
Public Member Functions inherited from Device | |
| void | debug_dump () |
| Device (const char *debug_name) | |
Private Member Functions | |
| void | debug_show_items () |
| void | debug_show_routing () |
Static Private Member Functions | |
| static unsigned | get_pkgsize_len (const unsigned char *data) |
| Returns the number of bytes for this package len. | |
| static unsigned | read_pkgsize (const unsigned char *data) |
| Read the pkgsize. | |
| static bool | name_seg (const unsigned char *res) |
| Returns whether this is a nameseg. | |
| static unsigned | get_nameprefix_len (const unsigned char *table) |
| Get the length of the nameprefix;. | |
| static unsigned | get_name_len (const unsigned char *table) |
| Get the length of a name. | |
| static void | get_absname (NamedRef *parent, const unsigned char *name, int &namelen, char *res, unsigned skip=0) |
| Calc an absname. | |
| static unsigned | read_data (const unsigned char *data, unsigned &length) |
| Get the length of a data item and the data value. | |
| static long | get_packet4 (const unsigned char *table, long len, unsigned *x) |
| Search and read a packet with 4 entries. | |
| static void | search_prt_direct (NamedRef *dev, NamedRef *ref) |
| Searches for PCI routing information in some region and adds them to dev. | |
| static void | search_prt_indirect (NamedRef *head, NamedRef *dev, NamedRef *prt) |
| Searches for PCI routing information by following references in the PRT method and adds them to dev. | |
| static unsigned | get_namedef_value (NamedRef *head, NamedRef *parent, const char *name) |
| Return a single value of a namedef declaration. | |
| static NamedRef * | search_ref (NamedRef *head, NamedRef *parent, const char *name, bool upstream) |
| Search some reference per name, either absolute or relative to some parent. | |
| static unsigned long long | get_device_bdf (NamedRef *head, NamedRef *dev) |
| Return a single bdf for a device struct by combining different device properties. | |
| static NamedRef * | add_refs (const unsigned char *table, unsigned len, NamedRef *res=0) |
| Add all named refs from a table and return the list head pointer. | |
| static void | add_routing (NamedRef *head) |
| Add the PCI routing information to the devices. | |
Private Attributes | |
| NamedRef * | _head |
Additional Inherited Members | |
Static Public Member Functions inherited from StaticReceiver< Atare > | |
| static bool | receive_static (Device *o, M &msg) |
ATARE - ACPI table IRQ routing extraction.
This extends the ideas from "ATARE: ACPI Tables and Regular Expressions, Bernhard Kauer, TU Dresden technical report TUD-FI09-09, Dresden, Germany, August 2009".
State: testing Features: direct PRT, referenced PRTs, exact name resolution, Routing Entries
|
inline |
|
inlinestaticprivate |
Add all named refs from a table and return the list head pointer.
|
inlinestaticprivate |
Add the PCI routing information to the devices.
|
inlineprivate |
|
inlineprivate |
|
inlinestaticprivate |
Calc an absname.
|
inlinestaticprivate |
Return a single bdf for a device struct by combining different device properties.
|
inlinestaticprivate |
Get the length of a name.
Returns 0 on failure or the length.
|
inlinestaticprivate |
Return a single value of a namedef declaration.
|
inlinestaticprivate |
Get the length of the nameprefix;.
|
inlinestaticprivate |
Search and read a packet with 4 entries.
|
inlinestaticprivate |
Returns the number of bytes for this package len.
|
inlinestaticprivate |
Returns whether this is a nameseg.
|
inlinestaticprivate |
Get the length of a data item and the data value.
Note: We support only numbers here.
|
inlinestaticprivate |
Read the pkgsize.
|
inline |
Searches for PCI routing information in some region and adds them to dev.
|
inlinestaticprivate |
Searches for PCI routing information by following references in the PRT method and adds them to dev.
|
inlinestaticprivate |
Search some reference per name, either absolute or relative to some parent.
|
private |