2006-06-28 18:19:13 +00:00
|
|
|
/*
|
|
|
|
* proxy.h: common definitions for proxy usage
|
|
|
|
*
|
|
|
|
* Copyright (C) 2006 Red Hat, Inc.
|
|
|
|
*
|
|
|
|
* See COPYING.LIB for the License of this software
|
|
|
|
*
|
|
|
|
* Daniel Veillard <veillard@redhat.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __LIBVIR_PROXY_H__
|
2010-03-09 18:22:22 +00:00
|
|
|
# define __LIBVIR_PROXY_H__
|
2006-06-28 18:19:13 +00:00
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# include "internal.h"
|
2006-06-28 18:19:13 +00:00
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# define PROXY_SOCKET_PATH "/tmp/livirt_proxy_conn"
|
|
|
|
# define PROXY_PROTO_VERSION 1
|
2006-06-28 18:19:13 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* the command allowed though the proxy
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2008-04-10 16:54:54 +00:00
|
|
|
VIR_PROXY_NONE = 0,
|
|
|
|
VIR_PROXY_VERSION = 1,
|
|
|
|
VIR_PROXY_NODE_INFO = 2,
|
|
|
|
VIR_PROXY_LIST = 3,
|
|
|
|
VIR_PROXY_NUM_DOMAIN = 4,
|
|
|
|
VIR_PROXY_LOOKUP_ID = 5,
|
|
|
|
VIR_PROXY_LOOKUP_UUID = 6,
|
|
|
|
VIR_PROXY_LOOKUP_NAME = 7,
|
|
|
|
VIR_PROXY_MAX_MEMORY = 8,
|
|
|
|
VIR_PROXY_DOMAIN_INFO = 9,
|
|
|
|
VIR_PROXY_DOMAIN_XML = 10,
|
|
|
|
VIR_PROXY_DOMAIN_OSTYPE = 11,
|
2007-04-30 16:58:26 +00:00
|
|
|
VIR_PROXY_GET_CAPABILITIES = 12
|
2006-06-28 18:19:13 +00:00
|
|
|
} virProxyCommand;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* structure used by the client to make a request to the proxy
|
|
|
|
* and by the proxy when answering the client.
|
|
|
|
* the size may not be fixed, it's passed as len.
|
|
|
|
*/
|
|
|
|
struct _virProxyPacket {
|
|
|
|
unsigned short version; /* version of the proxy protocol */
|
|
|
|
unsigned short command; /* command number a virProxyCommand */
|
|
|
|
unsigned short serial; /* command serial number */
|
|
|
|
unsigned short len; /* the length of the request */
|
|
|
|
union {
|
|
|
|
char string[8]; /* string data */
|
|
|
|
int arg; /* or int argument */
|
|
|
|
long larg; /* or long argument */
|
|
|
|
} data;
|
|
|
|
};
|
|
|
|
typedef struct _virProxyPacket virProxyPacket;
|
|
|
|
typedef virProxyPacket *virProxyPacketPtr;
|
|
|
|
|
2006-06-29 14:44:37 +00:00
|
|
|
/*
|
2008-02-05 19:27:37 +00:00
|
|
|
* If there is extra data sent from the proxy to the client,
|
2006-06-29 14:44:37 +00:00
|
|
|
* they are appended after the packet.
|
|
|
|
* the size may not be fixed, it's passed as len and includes the
|
|
|
|
* extra data.
|
|
|
|
*/
|
|
|
|
struct _virProxyFullPacket {
|
|
|
|
unsigned short version; /* version of the proxy protocol */
|
|
|
|
unsigned short command; /* command number a virProxyCommand */
|
|
|
|
unsigned short serial; /* command serial number */
|
|
|
|
unsigned short len; /* the length of the request */
|
|
|
|
union {
|
|
|
|
char string[8]; /* string data */
|
|
|
|
int arg; /* or int argument */
|
|
|
|
long larg; /* or long argument */
|
|
|
|
} data;
|
|
|
|
/* that should be aligned on a 16bytes boundary */
|
|
|
|
union {
|
2006-06-29 22:12:47 +00:00
|
|
|
char str[4080]; /* extra char array */
|
2006-06-29 14:44:37 +00:00
|
|
|
int arg[1020]; /* extra int array */
|
2007-03-15 17:24:56 +00:00
|
|
|
virDomainInfo dinfo; /* domain information */
|
|
|
|
virNodeInfo ninfo; /* node information */
|
2006-06-29 14:44:37 +00:00
|
|
|
} extra;
|
|
|
|
};
|
|
|
|
typedef struct _virProxyFullPacket virProxyFullPacket;
|
|
|
|
typedef virProxyFullPacket *virProxyFullPacketPtr;
|
2007-04-04 14:19:49 +00:00
|
|
|
|
Fri Jul 6 16:08:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* src/proxy_internal.c, src/proxy_internal.h,
src.xen_internal.c, src/xen_internal.h,
src/xen_unified.c, src/xen_unified.h,
src/xend_internal.c, src/xend_internal.h,
src/xm_internal.c, src/xm_internal.h,
src/xs_internal.c, src/xs_internal.h: The interface
between xen_unified.c and its underlying driver now uses
a custom structure (struct xenUnifiedDriver) instead
of reusing virDriver.
* src/xen_unified.c: virDomainLookup* functions in Xen
now throw VIR_ERR_NO_DOMAIN if the domain does not exist.
* src/xs_internal.c: Fix indentation.
2007-07-06 15:11:22 +00:00
|
|
|
/* xen_unified makes direct calls or indirect calls through here. */
|
|
|
|
extern struct xenUnifiedDriver xenProxyDriver;
|
|
|
|
extern int xenProxyInit (void);
|
|
|
|
|
|
|
|
extern virDomainPtr xenProxyLookupByID(virConnectPtr conn, int id);
|
|
|
|
extern virDomainPtr xenProxyLookupByUUID(virConnectPtr conn,
|
|
|
|
const unsigned char *uuid);
|
|
|
|
extern virDomainPtr xenProxyLookupByName(virConnectPtr conn,
|
|
|
|
const char *domname);
|
2006-06-28 18:19:13 +00:00
|
|
|
|
2007-10-31 09:39:13 +00:00
|
|
|
extern char * xenProxyDomainDumpXML(virDomainPtr domain,
|
2008-04-10 16:54:54 +00:00
|
|
|
int flags);
|
2008-11-28 15:25:04 +00:00
|
|
|
extern int xenProxyListDomains(virConnectPtr conn, int *ids,
|
|
|
|
int maxids);
|
2009-10-09 09:23:23 +00:00
|
|
|
extern int xenProxyNumOfDomains(virConnectPtr conn);
|
2006-06-28 18:19:13 +00:00
|
|
|
#endif /* __LIBVIR_PROXY_H__ */
|