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

A generic cpu state class. More...

#include <cpustate.h>

Inheritance diagram for CpuState:
Utcb

Public Member Functions

unsigned cpl ()
unsigned iopl ()
unsigned pm ()
unsigned pg ()
unsigned v86 ()
void edx_eax (unsigned long long value)
unsigned long long edx_eax ()
- Public Member Functions inherited from Utcb
unsigned ind2fp (unsigned ofs)
 Converts index to UTCB data to UTCB "frame pointers".
unsigned fp2ind (unsigned fp)
 Converts UTCB "frame pointer" to index to UTCB data area.
unsigned get_stack_top ()
 Returns the index to UTCB data area of the first empty word above the UTCB stack area.
void set_stack_top (unsigned ofs)
 Sets the "top pointer" of the UTCB stack area.
Frame get_nested_frame ()
unsigned frame_words ()
 Returns the number of words needed for storing the current UTCB content to a UTCB frame as implemented in add_frame().
Utcbadd_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 ()
Utcboperator<< (unsigned value)
bool validate_send_bounds ()
bool validate_recv_bounds ()
template<typename T >
Utcboperator<< (T &value)
Utcboperator<< (String string)
Utcboperator<< (TypedMapCap value)
Utcboperator<< (TypedIdentifyCap value)
Utcboperator<< (Crd value)
template<typename T >
bool operator>> (T &value)
WARN_UNUSED unsigned long add_mappings (unsigned long addr, unsigned long size, unsigned long hotspot, unsigned rights, bool frame=false, unsigned max_items=sizeof(msg)/sizeof(msg[0])/2)
 Add mappings to a UTCB.
void reset ()
 If you mixing code which manipulates the utcb by its own and you use this Utcb/Frame code, you have to fix up your utcb after the code manipulated the utcb by its own.

Additional Inherited Members

- Public Types inherited from Utcb
enum  { STACK_START = 512 }
enum  { MINSHIFT = 12 }
enum  { HEADER_SIZE = sizeof(struct head), MAX_DATA_WORDS = sizeof(msg) / sizeof(msg[0]), MAX_FRAME_WORDS = MAX_DATA_WORDS - STACK_START - 1 }
typedef struct Utcb::Descriptor Descriptor
- Public Attributes inherited from Utcb
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]
      long long   reserved
      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
      long long   tsc_value
      long long   tsc_off
   } 
   unsigned   msg [(4096-sizeof(struct head))/sizeof(unsigned)]
}; 

Detailed Description

A generic cpu state class.

Member Function Documentation

unsigned CpuState::cpl ( )
inline
void CpuState::edx_eax ( unsigned long long  value)
inline
unsigned long long CpuState::edx_eax ( )
inline
unsigned CpuState::iopl ( )
inline
unsigned CpuState::pg ( )
inline
unsigned CpuState::pm ( )
inline
unsigned CpuState::v86 ( )
inline

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