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__
|
|
|
|
#define __LIBVIR_PROXY_H__
|
|
|
|
|
|
|
|
#include <libvirt/libvirt.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define PROXY_SOCKET_PATH "/tmp/livirt_proxy_conn"
|
|
|
|
#define PROXY_PROTO_VERSION 1
|
|
|
|
|
|
|
|
/*
|
|
|
|
* the command allowed though the proxy
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
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,
|
2006-08-09 15:21:16 +00:00
|
|
|
VIR_PROXY_DOMAIN_INFO = 9,
|
|
|
|
VIR_PROXY_DOMAIN_XML = 10,
|
2006-11-07 16:28:16 +00:00
|
|
|
VIR_PROXY_DOMAIN_OSTYPE = 11
|
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
|
|
|
/*
|
|
|
|
* If there is extra data sent from the proxy to the client,
|
|
|
|
* 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;
|
2006-06-28 18:19:13 +00:00
|
|
|
/*
|
|
|
|
* Functions callable from libvirt library
|
|
|
|
*/
|
2006-06-29 22:12:47 +00:00
|
|
|
void xenProxyRegister(void);
|
2006-06-28 18:19:13 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __LIBVIR_PROXY_H__ */
|
2007-03-15 17:24:56 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* vim: set tabstop=4:
|
|
|
|
* vim: set shiftwidth=4:
|
|
|
|
* vim: set expandtab:
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
* Local variables:
|
|
|
|
* indent-tabs-mode: nil
|
|
|
|
* c-indent-level: 4
|
|
|
|
* c-basic-offset: 4
|
|
|
|
* tab-width: 4
|
|
|
|
* End:
|
|
|
|
*/
|