summaryrefslogtreecommitdiffstats
path: root/include/libxen.h
blob: 1f74d75ab25b767a720d88f9644f393e233d0f34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
 * libxen.h: interface for the libxen library to handle Xen domains
 *           from a process running in domain 0
 *
 * Copyright (C) 2005 Red Hat, Inc.
 *
 * See COPYING.LIB for the License of this software
 *
 * Daniel Veillard <veillard@redhat.com>
 */

#ifndef __XEN_XENLIB_H__
#define __XEN_XENLIB_H__

#ifdef __cplusplus
extern "C" {
#endif

/**
 * xenConnect:
 *
 * a xenConnect is a private structure representing a connection to
 * the Xen Hypervisor.
 */
typedef struct _xenConnect xenConnect;

/**
 * xenConnectPtr:
 *
 * a xenConnectPtr is pointer to a xenConnect private structure, this is the
 * type used to reference a connection to the Xen Hypervisor in the API.
 */
typedef xenConnect *xenConnectPtr;

/**
 * xenDomain:
 *
 * a xenDomain is a private structure representing a Xen domain.
 */
typedef struct _xenDomain xenDomain;

/**
 * xenDomainPtr:
 *
 * a xenDomainPtr is pointer to a xenDomain private structure, this is the
 * type used to reference a Xen domain in the API.
 */
typedef xenDomain *xenDomainPtr;


/**
 * xenDomainFlags:
 *
 * Flags OR'ed together to provide specific behaviour when creating a
 * Domain.
 */
typedef enum {
     XEN_DOMAIN_NONE = 0
} xenDomainFlags;

/*
 * Connection and disconnections to the Hypervisor
 */
xenConnectPtr		xenOpenConnect		(const char *name);
int			xenCloseConnect		(xenConnectPtr conn);
unsigned long		xenGetVersion		(xenConnectPtr conn);

/*
 * Domain creation and destruction
 */
xenDomainPtr		xenCreateLinuxDomain	(xenConnectPtr conn,
						 const char *kernel_path,
						 const char *initrd_path,
						 const char *cmdline,
						 unsigned int flags);
#ifdef __cplusplus
}
#endif

#endif /* __XEN_XENLIB_H__ */