Public Types | Public Member Functions | Static Public Member Functions | Public Attributes

MessageHostOp Struct Reference

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

#include <message.h>

List of all members.

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
}

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, unsigned cpu=~0U)
static MessageHostOp alloc_service_portal (unsigned *pt_out, ServicePortalFn pt, void *pt_arg, Crd crd, unsigned cpu=~0U)

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
   } 
   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
      unsigned   cpu
   } 
   struct {
      unsigned long long   mac
   } 
   struct {
      VCpu *   vcpu
   } 
   struct {
      ServiceThreadFn   work
      void *   work_arg
      unsigned   prio
      unsigned   cpu
      char const *   name
   }   _alloc_service_thread
   struct {
      ServicePortalFn   pt
      void *   pt_arg
      unsigned   crd
      unsigned   cpu
      unsigned *   pt_out
   }   _alloc_service_portal
}; 

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 

Constructor & Destructor Documentation

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

Member Function Documentation

static MessageHostOp MessageHostOp::alloc_service_portal ( unsigned *  pt_out,
ServicePortalFn  pt,
void *  pt_arg,
Crd  crd,
unsigned  cpu = ~0U 
) [inline, static]
static MessageHostOp MessageHostOp::alloc_service_thread ( ServiceThreadFn  work,
void *  arg,
char const *  name = 0,
unsigned  prio = ~0U,
unsigned  cpu = ~0U 
) [inline, static]

Member Data Documentation

union { ... }
union { ... }
unsigned long MessageHostOp::cmdlen
unsigned long MessageHostOp::len
unsigned long long MessageHostOp::mac
unsigned long long MessageHostOp::msi_address
char const* MessageHostOp::name
unsigned long MessageHostOp::phys
unsigned long MessageHostOp::phys_len
unsigned long MessageHostOp::portal_pf
unsigned long MessageHostOp::size
unsigned long MessageHostOp::value

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