xen_hypervisor.h 6.5 KB
Newer Older
1 2 3
/*
 * xen_internal.h: internal API for direct access to Xen hypervisor level
 *
4
 * Copyright (C) 2005, 2010-2011 Red Hat, Inc.
5
 *
O
Osier Yang 已提交
6 7 8 9 10 11 12 13 14 15 16
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this library.  If not, see
O
Osier Yang 已提交
18
 * <http://www.gnu.org/licenses/>.
19 20 21 22 23
 *
 * Daniel Veillard <veillard@redhat.com>
 */

#ifndef __VIR_XEN_INTERNAL_H__
24
# define __VIR_XEN_INTERNAL_H__
25

26 27 28
# include "internal.h"
# include "capabilities.h"
# include "driver.h"
M
Martin Kletzander 已提交
29
# include "viruri.h"
30

P
Philipp Hahn 已提交
31 32 33 34 35 36 37 38
/* See xenHypervisorInit() for details. */
struct xenHypervisorVersions {
    int hv; /* u16 major,minor hypervisor version */
    int hypervisor; /* -1,0,1,2,3 */
    int sys_interface; /* -1,2,3,4,6,7,8 */
    int dom_interface; /* -1,3,4,5,6,7 */
};

39
extern struct xenUnifiedDriver xenHypervisorDriver;
P
Philipp Hahn 已提交
40
int xenHypervisorInit(struct xenHypervisorVersions *override_versions);
41

42
virCapsPtr xenHypervisorMakeCapabilities (virConnectPtr conn);
43

44 45 46
int
        xenHypervisorHasDomain(virConnectPtr conn,
                               int id);
47 48
virDomainPtr
        xenHypervisorLookupDomainByID   (virConnectPtr conn,
49
                                         int id);
50
virDomainPtr
51 52
        xenHypervisorLookupDomainByUUID (virConnectPtr conn,
                                         const unsigned char *uuid);
53
char *
54
        xenHypervisorDomainGetOSType    (virDomainPtr dom);
55

56
int
57
        xenHypervisorOpen               (virConnectPtr conn,
58
                                         virConnectAuthPtr auth,
59
                                         unsigned int flags);
60 61
int     xenHypervisorClose              (virConnectPtr conn);
int     xenHypervisorGetVersion         (virConnectPtr conn,
62
                                         unsigned long *hvVer);
63
virCapsPtr
64
        xenHypervisorMakeCapabilitiesInternal(virConnectPtr conn,
65
                                              virArch hostarch,
66 67
                                              FILE *cpuinfo,
                                              FILE *capabilities);
68 69
char *
        xenHypervisorGetCapabilities    (virConnectPtr conn);
70
unsigned long
71
        xenHypervisorGetDomMaxMemory    (virConnectPtr conn,
72
                                         int id);
73 74
int     xenHypervisorNumOfDomains       (virConnectPtr conn);
int     xenHypervisorListDomains        (virConnectPtr conn,
75 76
                                         int *ids,
                                         int maxids);
77 78
int     xenHypervisorGetMaxVcpus        (virConnectPtr conn,
                                         const char *type);
79 80
int     xenHypervisorDestroyDomain      (virDomainPtr domain)
          ATTRIBUTE_NONNULL (1);
81 82 83
int     xenHypervisorDestroyDomainFlags (virDomainPtr domain,
                                         unsigned int flags)
          ATTRIBUTE_NONNULL (1);
84 85 86 87
int     xenHypervisorResumeDomain       (virDomainPtr domain)
          ATTRIBUTE_NONNULL (1);
int     xenHypervisorPauseDomain        (virDomainPtr domain)
          ATTRIBUTE_NONNULL (1);
88
int     xenHypervisorGetDomainInfo        (virDomainPtr domain,
89 90
                                           virDomainInfoPtr info)
          ATTRIBUTE_NONNULL (1);
91 92 93 94 95
int     xenHypervisorGetDomainState     (virDomainPtr domain,
                                         int *state,
                                         int *reason,
                                         unsigned int flags)
          ATTRIBUTE_NONNULL (1);
96
int     xenHypervisorGetDomInfo         (virConnectPtr conn,
97 98
                                         int id,
                                         virDomainInfoPtr info);
99
int     xenHypervisorSetMaxMemory       (virDomainPtr domain,
100 101
                                         unsigned long memory)
          ATTRIBUTE_NONNULL (1);
102
int     xenHypervisorCheckID            (virConnectPtr conn,
103
                                         int id);
104
int     xenHypervisorSetVcpus           (virDomainPtr domain,
105 106
                                         unsigned int nvcpus)
          ATTRIBUTE_NONNULL (1);
107
int     xenHypervisorPinVcpu            (virDomainPtr domain,
108 109
                                         unsigned int vcpu,
                                         unsigned char *cpumap,
110 111
                                         int maplen)
          ATTRIBUTE_NONNULL (1);
112
int     xenHypervisorGetVcpus           (virDomainPtr domain,
113 114 115
                                         virVcpuInfoPtr info,
                                         int maxinfo,
                                         unsigned char *cpumaps,
116 117 118 119
                                         int maplen)
          ATTRIBUTE_NONNULL (1);
int     xenHypervisorGetVcpuMax         (virDomainPtr domain)
          ATTRIBUTE_NONNULL (1);
120

121
char *  xenHypervisorGetSchedulerType   (virDomainPtr domain,
122 123
                                         int *nparams)
          ATTRIBUTE_NONNULL (1);
124

125
int     xenHypervisorGetSchedulerParameters(virDomainPtr domain,
126
                                         virTypedParameterPtr params,
127 128
                                         int *nparams)
          ATTRIBUTE_NONNULL (1);
129

130
int     xenHypervisorSetSchedulerParameters(virDomainPtr domain,
131
                                         virTypedParameterPtr params,
132 133
                                         int nparams)
          ATTRIBUTE_NONNULL (1);
134

135
int     xenHypervisorDomainBlockStats   (virDomainPtr domain,
136
                                         const char *path,
137 138
                                         struct _virDomainBlockStats *stats)
          ATTRIBUTE_NONNULL (1);
139
int     xenHypervisorDomainInterfaceStats (virDomainPtr domain,
140
                                         const char *path,
141 142
                                         struct _virDomainInterfaceStats *stats)
          ATTRIBUTE_NONNULL (1);
143

144
int     xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn,
145 146 147
                                          unsigned long long *freeMems,
                                          int startCell,
                                          int maxCells);
148

J
John Levon 已提交
149 150
int	xenHavePrivilege(void);

151
#endif                          /* __VIR_XEN_INTERNAL_H__ */