#include <utcb.h>
Classes | |
| struct | Descriptor |
| class | Frame |
| A smaller frame on the UTCB. More... | |
| struct | head |
| struct | String |
| struct | TypedIdentifyCap |
| struct | TypedMapCap |
Public Types | |
| enum | { STACK_START = 512 } |
| enum | { MINSHIFT = 12 } |
| enum | { HEADER_SIZE = sizeof(struct head) } |
| typedef struct Utcb::Descriptor | Descriptor |
Public Member Functions | |
| Frame | get_nested_frame () |
| Utcb & | add_frame () |
| Push UTCB header and data to a stack area in the UTCB. | |
| void | skip_frame () |
| void | drop_frame () |
| Restore UTCB to the state saved by the last add_frame() and remove the restored state from the stack area. | |
| void | set_header (unsigned untyped, unsigned typed) |
| unsigned * | item_start () |
| Utcb & | operator<< (unsigned value) |
| bool | validate_bounds () |
| template<typename T > | |
| Utcb & | operator<< (T &value) |
| Utcb & | operator<< (String string) |
| Utcb & | operator<< (TypedMapCap value) |
| Utcb & | operator<< (TypedIdentifyCap value) |
| Utcb & | operator<< (Crd value) |
| template<typename T > | |
| bool | operator>> (T &value) |
Public Attributes | |
| struct Utcb::head | head |
| union { | |
| struct { | |
| unsigned mtd | |
| unsigned inst_len | |
| unsigned eip | |
| unsigned efl | |
| unsigned intr_state | |
| unsigned actv_state | |
| unsigned inj_info | |
| unsigned inj_error | |
| union { | |
| struct { | |
| } | |
| unsigned gpr [8] | |
| } | |
| unsigned long long qual [2] | |
| unsigned ctrl [2] | |
| unsigned long long tsc_off | |
| unsigned cr0 | |
| unsigned cr2 | |
| unsigned cr3 | |
| unsigned cr4 | |
| unsigned dr7 | |
| unsigned sysenter_cs | |
| unsigned sysenter_esp | |
| unsigned sysenter_eip | |
| Descriptor es | |
| Descriptor cs | |
| Descriptor ss | |
| Descriptor ds | |
| Descriptor fs | |
| Descriptor gs | |
| Descriptor ld | |
| Descriptor tr | |
| Descriptor gd | |
| Descriptor id | |
| } | |
| unsigned msg [(4096-sizeof(struct head))/sizeof(unsigned)] | |
| }; | |
| typedef struct Utcb::Descriptor Utcb::Descriptor |
| Utcb& Utcb::add_frame | ( | ) | [inline] |
Push UTCB header and data to a stack area in the UTCB.
Later, UTCB can be fully restored by drop_frame() or partially restored by skip_frame().
TODO: put error code at some fixed point
| void Utcb::drop_frame | ( | ) | [inline] |
Restore UTCB to the state saved by the last add_frame() and remove the restored state from the stack area.
| Frame Utcb::get_nested_frame | ( | ) | [inline] |
| unsigned* Utcb::item_start | ( | ) | [inline] |
| Utcb& Utcb::operator<< | ( | TypedMapCap | value | ) | [inline] |
| Utcb& Utcb::operator<< | ( | T & | value | ) | [inline] |
| Utcb& Utcb::operator<< | ( | unsigned | value | ) | [inline] |
| Utcb& Utcb::operator<< | ( | TypedIdentifyCap | value | ) | [inline] |
| bool Utcb::operator>> | ( | T & | value | ) | [inline] |
| void Utcb::set_header | ( | unsigned | untyped, | |
| unsigned | typed | |||
| ) | [inline] |
| void Utcb::skip_frame | ( | ) | [inline] |
| bool Utcb::validate_bounds | ( | ) | [inline] |
| union { ... } |
| unsigned Utcb::actv_state |
| unsigned Utcb::cr0 |
| unsigned Utcb::cr2 |
| unsigned Utcb::cr3 |
| unsigned Utcb::cr4 |
| unsigned Utcb::ctrl[2] |
| unsigned Utcb::dr7 |
| unsigned Utcb::efl |
| unsigned Utcb::eip |
| unsigned Utcb::gpr[8] |
| struct Utcb::head Utcb::head |
| unsigned Utcb::inj_error |
| unsigned Utcb::inj_info |
| unsigned Utcb::inst_len |
| unsigned Utcb::intr_state |
| unsigned Utcb::mtd |
| unsigned long long Utcb::qual[2] |
| unsigned Utcb::sysenter_cs |
| unsigned Utcb::sysenter_eip |
| unsigned Utcb::sysenter_esp |
| unsigned long long Utcb::tsc_off |
1.7.1