/* * xs_internal.h: internal API for access to XenStore * * Copyright (C) 2006 Red Hat, Inc. * * See COPYING.LIB for the License of this software * * Daniel Veillard */ #ifndef __VIR_XS_INTERNAL_H__ #define __VIR_XS_INTERNAL_H__ #include "internal.h" extern struct xenUnifiedDriver xenStoreDriver; int xenStoreInit (void); int xenStoreOpen (virConnectPtr conn, virConnectAuthPtr auth, int flags); int xenStoreClose (virConnectPtr conn); int xenStoreGetDomainInfo (virDomainPtr domain, virDomainInfoPtr info); int xenStoreNumOfDomains (virConnectPtr conn); int xenStoreListDomains (virConnectPtr conn, int *ids, int maxids); virDomainPtr xenStoreLookupByName(virConnectPtr conn, const char *name); unsigned long xenStoreGetMaxMemory (virDomainPtr domain); int xenStoreDomainSetMemory (virDomainPtr domain, unsigned long memory); unsigned long xenStoreDomainGetMaxMemory(virDomainPtr domain); int xenStoreDomainShutdown (virDomainPtr domain); int xenStoreDomainReboot (virDomainPtr domain, unsigned int flags); /* those are entry point for the proxy */ int xenStoreDomainGetVNCPort(virConnectPtr conn, int domid); char * xenStoreDomainGetConsolePath(virConnectPtr conn, int domid); char * xenStoreDomainGetOSTypeID(virConnectPtr conn, int id); char * xenStoreDomainGetNetworkID(virConnectPtr conn, int id, const char *mac); char * xenStoreDomainGetDiskID(virConnectPtr conn, int id, const char *dev); char * xenStoreDomainGetName(virConnectPtr conn, int id); int xenStoreDomainGetUUID(virConnectPtr conn, int id, unsigned char *uuid); typedef int (*xenStoreWatchCallback)(virConnectPtr conn, const char *path, const char *token, void *opaque); struct _xenStoreWatch { char *path; char *token; xenStoreWatchCallback cb; void *opaque; }; typedef struct _xenStoreWatch xenStoreWatch; typedef xenStoreWatch *xenStoreWatchPtr; struct _xenStoreWatchList { unsigned int count; xenStoreWatchPtr *watches; }; typedef struct _xenStoreWatchList xenStoreWatchList; typedef xenStoreWatchList *xenStoreWatchListPtr; void xenStoreWatchListFree(xenStoreWatchListPtr head); int xenStoreAddWatch(virConnectPtr conn, const char *path, const char *token, xenStoreWatchCallback cb, void *opaque); int xenStoreRemoveWatch(virConnectPtr conn, const char *path, const char *token); xenStoreWatchPtr xenStoreFindWatch(xenStoreWatchListPtr list, const char *path, const char *token); void xenStoreWatchEvent(int watch, int fd, int events, void *data); /* domain events */ int xenStoreDomainIntroduced(virConnectPtr conn, const char *path, const char *token, void *opaque); int xenStoreDomainReleased(virConnectPtr conn, const char *path, const char *token, void *opaque); int xenStoreDomainEventEmitted(virDomainEventType evt); #endif /* __VIR_XS_INTERNAL_H__ */