blob: e7d56088b9ec45c5d5a230204ae474e80e9ded13 (
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
|
/*
* libxen.h: Main interfaces for the libxen library to handle virtualization
* 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>
*/
#include "libxen.h"
#include "memory.h"
#include "internal.h"
/*
* TODO:
* - use lock to protect against concurrent accesses ?
* - use reference counting to garantee coherent pointer state ?
*/
#define XEN_CONNECT_MAGIC 0x4F23DEAD
/**
* _xenConnect:
*
* Internal structure associated to a connection
*/
struct _xenConnect {
unsigned int magic; /* specific value to check */
int handle; /* internal handle used for hypercall */
}
/**
* xenGetConnect:
* @name: optional argument currently unused, pass NULL
*
* This function should be called first to get a connection to the
* Hypervisor
*
* Returns a pointer to the hypervisor connection or NULL in case of error
*/
xenConnectPtr
xenOpenConnect(const char *name ATTRIBUTE_UNUSED) {
return(NULL);
}
/**
* xenCloseConnect:
* @conn: pointer to the hypervisor connection
*
* This function closes the connection to the Hypervisor. This should
* not be called if further interaction with the Hypervisor are needed
* especially if there is running domain which need further monitoring by
* the application.
*
* Returns 0 in case of success or -1 in case of error.
*/
int
xenCloseConnect(xenConnectPtr conn) {
if ((conn == NULL) || (conn->magic != XEN_CONNECT_MAGIC))
return(-1);
/*
* TODO:
* Free the domain pointers associated to this connection
*/
conn->magic = -1;
free(conn);
return(0);
}
/**
* xenGetVersion:
* @conn: pointer to the hypervisor connection
*
* Get the version level of the Hypervisor running
|