A.10 Administrative Operations
A large number of control operations are available to a sufficiently
privileged domain (typically domain 0). These allow the creation and
management of new domains, for example. A complete list is given
below: for more details on any or all of these, please see
xen/include/public/dom0_ops.h
dom0_op(dom0_op_t *op)
Administrative domain operations for domain management. The options are:
- DOM0_GETMEMLIST:
- get list of pages used by the domain
- DOM0_SCHEDCTL:
-
- DOM0_ADJUSTDOM:
- adjust scheduling priorities for domain
- DOM0_CREATEDOMAIN:
- create a new domain
- DOM0_DESTROYDOMAIN:
- deallocate all resources associated
with a domain
- DOM0_PAUSEDOMAIN:
- remove a domain from the scheduler run
queue.
- DOM0_UNPAUSEDOMAIN:
- mark a paused domain as schedulable
once again.
- DOM0_GETDOMAININFO:
- get statistics about the domain
- DOM0_SETDOMAININFO:
- set VCPU-related attributes
- DOM0_MSR:
- read or write model specific registers
- DOM0_DEBUG:
- interactively invoke the debugger
- DOM0_SETTIME:
- set system time
- DOM0_GETPAGEFRAMEINFO:
-
- DOM0_READCONSOLE:
- read console content from hypervisor buffer ring
- DOM0_PINCPUDOMAIN:
- pin domain to a particular CPU
- DOM0_TBUFCONTROL:
- get and set trace buffer attributes
- DOM0_PHYSINFO:
- get information about the host machine
- DOM0_SCHED_ID:
- get the ID of the current Xen scheduler
- DOM0_SHADOW_CONTROL:
- switch between shadow page-table modes
- DOM0_SETDOMAINMAXMEM:
- set maximum memory allocation of a domain
- DOM0_GETPAGEFRAMEINFO2:
- batched interface for getting
page frame info
- DOM0_ADD_MEMTYPE:
- set MTRRs
- DOM0_DEL_MEMTYPE:
- remove a memory type range
- DOM0_READ_MEMTYPE:
- read MTRR
- DOM0_PERFCCONTROL:
- control Xen's software performance
counters
- DOM0_MICROCODE:
- update CPU microcode
- DOM0_IOPORT_PERMISSION:
- modify domain permissions for an
IO port range (enable / disable a range for a particular domain)
- DOM0_GETVCPUCONTEXT:
- get context from a VCPU
- DOM0_GETVCPUINFO:
- get current state for a VCPU
- DOM0_GETDOMAININFOLIST:
- batched interface to get domain
info
- DOM0_PLATFORM_QUIRK:
- inform Xen of a platform quirk it
needs to handle (e.g. noirqbalance)
- DOM0_PHYSICAL_MEMORY_MAP:
- get info about dom0's memory
map
- DOM0_MAX_VCPUS:
- change max number of VCPUs for a domain
- DOM0_SETDOMAINHANDLE:
- set the handle for a domain
Most of the above are best understood by looking at the code
implementing them (in xen/common/dom0_ops.c) and in
the user-space tools that use them (mostly in tools/libxc).
Hypercalls relating to the management of the Access Control Module are
also restricted to domain 0 access for now:
acm_op(struct acm_op * u_acm_op)
This hypercall can be used to configure the state of the ACM, query
that state, request access control decisions and dump additional
information.