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

Request to the host, such as notify irq or request IO region. More...

#include <message.h>

Public Types

enum  Type {
  OP_ATTACH_IRQ, OP_NOTIFY_IRQ, OP_ATTACH_MSI, OP_ALLOC_IOIO_REGION,
  OP_ALLOC_IOMEM, OP_ALLOC_SEMAPHORE, OP_ALLOC_SERVICE_THREAD, OP_ALLOC_SERVICE_PORTAL,
  OP_ASSIGN_PCI, OP_VIRT_TO_PHYS, OP_GET_MODULE, OP_GET_MAC,
  OP_GUEST_MEM, OP_ALLOC_FROM_GUEST, OP_VCPU_CREATE_BACKEND, OP_VCPU_BLOCK,
  OP_VCPU_RELEASE, OP_REGISTER_SERVICE, OP_WAIT_CHILD, OP_CREATE_EC4PT
}

Public Member Functions

 MessageHostOp (VCpu *_vcpu)
 MessageHostOp (unsigned _module, char *_start, unsigned long _size=0)
 MessageHostOp (Type _type, unsigned long _value, unsigned long _len=0, unsigned _cpu=~0U)
 MessageHostOp (Type _type, void *_value, unsigned long _len=0)
 MessageHostOp (void *_obj, char const *_name, unsigned long _pfu, char *_revoke_mem=0, bool _cap=true)

Static Public Member Functions

static MessageHostOp alloc_service_thread (ServiceThreadFn work, void *arg, char const *name=0, unsigned prio=~0U, phy_cpu_no cpu=~0U)
static MessageHostOp alloc_service_portal (unsigned *pt_out, ServicePortalFn pt, void *pt_arg, Crd crd, phy_cpu_no cpu=~0U)
static MessageHostOp attach_msi (phy_cpu_no cpu, bool locked, uint16 rid, char const *name)
static MessageHostOp attach_hpet_msi (phy_cpu_no cpu, bool locked, void *mmio, char const *name)
static MessageHostOp attach_irq (unsigned irq, phy_cpu_no cpu, bool locked, char const *name)
static MessageHostOp create_ec4pt (cap_sel &ec, void *obj, phy_cpu_no cpu, Utcb **utcb_out)

Public Attributes

enum MessageHostOp::Type type
union {
   unsigned long   value
   void *   obj
}; 
union {
   struct {
      unsigned long   phys
      unsigned long   phys_len
   } 
   struct {
      char const *   service_name
      unsigned long   portal_func
      bool   cap
      unsigned long   portal_pf
      unsigned   excbase
      unsigned   excinc
      unsigned   crd_t
      char *   revoke_mem
   } 
   struct {
      char *   ptr
      unsigned long   len
      phy_cpu_no   cpu
      char const *   desc
   } 
   struct {
      unsigned   module
      char *   start
      unsigned long   size
      char *   cmdline
      unsigned long   cmdlen
   } 
   struct {
      unsigned   msi_gsi
      unsigned   msi_value
      unsigned long long   msi_address
      bool   is_hpet
   } 
   struct {
      unsigned long long   mac
   } 
   struct {
      VCpu *   vcpu
   } 
   struct {
      ServiceThreadFn   work
      void *   work_arg
      unsigned   prio
      phy_cpu_no   cpu
      char const *   name
   }   _alloc_service_thread
   struct {
      ServicePortalFn   pt
      void *   pt_arg
      unsigned   crd
      phy_cpu_no   cpu
      unsigned *   pt_out
   }   _alloc_service_portal
   struct {
      phy_cpu_no   cpu
      Utcb **   utcb_out
      cap_sel   ec
   }   _create_ec4pt
}; 

Detailed Description

Request to the host, such as notify irq or request IO region.

Member Enumeration Documentation

Enumerator:
OP_ATTACH_IRQ 
OP_NOTIFY_IRQ 
OP_ATTACH_MSI 
OP_ALLOC_IOIO_REGION 
OP_ALLOC_IOMEM 
OP_ALLOC_SEMAPHORE 
OP_ALLOC_SERVICE_THREAD 
OP_ALLOC_SERVICE_PORTAL 
OP_ASSIGN_PCI 
OP_VIRT_TO_PHYS 
OP_GET_MODULE 
OP_GET_MAC 
OP_GUEST_MEM 
OP_ALLOC_FROM_GUEST 
OP_VCPU_CREATE_BACKEND 
OP_VCPU_BLOCK 
OP_VCPU_RELEASE 
OP_REGISTER_SERVICE 
OP_WAIT_CHILD 
OP_CREATE_EC4PT 

Constructor & Destructor Documentation

MessageHostOp::MessageHostOp ( VCpu _vcpu)
inlineexplicit
MessageHostOp::MessageHostOp ( unsigned  _module,
char *  _start,
unsigned long  _size = 0 
)
inlineexplicit
MessageHostOp::MessageHostOp ( Type  _type,
unsigned long  _value,
unsigned long  _len = 0,
unsigned  _cpu = ~0U 
)
inlineexplicit
MessageHostOp::MessageHostOp ( Type  _type,
void *  _value,
unsigned long  _len = 0 
)
inlineexplicit
MessageHostOp::MessageHostOp ( void *  _obj,
char const *  _name,
unsigned long  _pfu,
char *  _revoke_mem = 0,
bool  _cap = true 
)
inlineexplicit

Member Function Documentation

static MessageHostOp MessageHostOp::alloc_service_portal ( unsigned *  pt_out,
ServicePortalFn  pt,
void *  pt_arg,
Crd  crd,
phy_cpu_no  cpu = ~0U 
)
inlinestatic
static MessageHostOp MessageHostOp::alloc_service_thread ( ServiceThreadFn  work,
void *  arg,
char const *  name = 0,
unsigned  prio = ~0U,
phy_cpu_no  cpu = ~0U 
)
inlinestatic
static MessageHostOp MessageHostOp::attach_hpet_msi ( phy_cpu_no  cpu,
bool  locked,
void *  mmio,
char const *  name 
)
inlinestatic
static MessageHostOp MessageHostOp::attach_irq ( unsigned  irq,
phy_cpu_no  cpu,
bool  locked,
char const *  name 
)
inlinestatic
static MessageHostOp MessageHostOp::attach_msi ( phy_cpu_no  cpu,
bool  locked,
uint16  rid,
char const *  name 
)
inlinestatic
static MessageHostOp MessageHostOp::create_ec4pt ( cap_sel ec,
void *  obj,
phy_cpu_no  cpu,
Utcb **  utcb_out 
)
inlinestatic

Member Data Documentation

union { ... }
union { ... }
struct { ... } MessageHostOp::_alloc_service_portal
struct { ... } MessageHostOp::_alloc_service_thread
struct { ... } MessageHostOp::_create_ec4pt
bool MessageHostOp::cap
unsigned long MessageHostOp::cmdlen
char* MessageHostOp::cmdline
phy_cpu_no MessageHostOp::cpu
unsigned MessageHostOp::crd
unsigned MessageHostOp::crd_t
char const* MessageHostOp::desc
cap_sel MessageHostOp::ec
unsigned MessageHostOp::excbase
unsigned MessageHostOp::excinc
bool MessageHostOp::is_hpet
unsigned long MessageHostOp::len
unsigned long long MessageHostOp::mac
unsigned MessageHostOp::module
unsigned long long MessageHostOp::msi_address
unsigned MessageHostOp::msi_gsi
unsigned MessageHostOp::msi_value
char const* MessageHostOp::name
void* MessageHostOp::obj
unsigned long MessageHostOp::phys
unsigned long MessageHostOp::phys_len
unsigned long MessageHostOp::portal_func
unsigned long MessageHostOp::portal_pf
unsigned MessageHostOp::prio
ServicePortalFn MessageHostOp::pt
void* MessageHostOp::pt_arg
unsigned* MessageHostOp::pt_out
char* MessageHostOp::ptr
char* MessageHostOp::revoke_mem
char const* MessageHostOp::service_name
unsigned long MessageHostOp::size
char* MessageHostOp::start
enum MessageHostOp::Type MessageHostOp::type
Utcb** MessageHostOp::utcb_out
unsigned long MessageHostOp::value
VCpu* MessageHostOp::vcpu
ServiceThreadFn MessageHostOp::work
void* MessageHostOp::work_arg

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