Public Types | Public Member Functions | Public Attributes

CpuMessage Struct Reference

External Virtual CPU interface. More...

#include <vcpu.h>

List of all members.

Public Types

enum  Type {
  TYPE_CPUID_WRITE, TYPE_CPUID, TYPE_RDTSC, TYPE_RDMSR,
  TYPE_WRMSR, TYPE_IOIN, TYPE_IOOUT, TYPE_TRIPLE,
  TYPE_INIT, TYPE_HLT, TYPE_INVD, TYPE_WBINVD,
  TYPE_CHECK_IRQ, TYPE_CALC_IRQWINDOW, TYPE_SINGLE_STEP
}

Public Member Functions

 CpuMessage (Type _type, CpuState *_cpu, unsigned _mtr_in)
 CpuMessage (unsigned _nr, unsigned _reg, unsigned _mask, unsigned _value)
 CpuMessage (bool is_in, CpuState *_cpu, unsigned _io_order, unsigned _port, void *_dst, unsigned _mtr_in)

Public Attributes

enum CpuMessage::Type type
union {
   struct {
      CpuState *   cpu
      union {
         unsigned   cpuid_index
         struct {
            unsigned   io_order
            unsigned short   port
            void *   dst
         } 
      } 
   } 
   struct {
      unsigned   nr
      unsigned   reg
      unsigned   mask
      unsigned   value
   } 
}; 
unsigned mtr_in
unsigned mtr_out

Detailed Description

External Virtual CPU interface.

Copyright (C) 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.


Member Enumeration Documentation

Enumerator:
TYPE_CPUID_WRITE 
TYPE_CPUID 
TYPE_RDTSC 
TYPE_RDMSR 
TYPE_WRMSR 
TYPE_IOIN 
TYPE_IOOUT 
TYPE_TRIPLE 
TYPE_INIT 
TYPE_HLT 
TYPE_INVD 
TYPE_WBINVD 
TYPE_CHECK_IRQ 
TYPE_CALC_IRQWINDOW 
TYPE_SINGLE_STEP 

Constructor & Destructor Documentation

CpuMessage::CpuMessage ( Type  _type,
CpuState _cpu,
unsigned  _mtr_in 
) [inline]
CpuMessage::CpuMessage ( unsigned  _nr,
unsigned  _reg,
unsigned  _mask,
unsigned  _value 
) [inline]
CpuMessage::CpuMessage ( bool  is_in,
CpuState _cpu,
unsigned  _io_order,
unsigned  _port,
void *  _dst,
unsigned  _mtr_in 
) [inline]

Member Data Documentation

union { ... }
unsigned CpuMessage::mask
unsigned CpuMessage::nr
unsigned short CpuMessage::port
unsigned CpuMessage::reg

The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines