package org.libvirt.jna;
import com.sun.jna.Callback;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.LongByReference;
/**
* The libvirt interface which is exposed via JNA. The complete API is
* documented at http://www.libvirt.org/html/libvirt-libvirt.html.
*
* Known api calls to be missing
* LIBVIRT_0.1.0
* virDefaultErrorFunc
* virConnCopyLastError
* virFreeError
*
* LIBVIRT_0.4.2
* virDomainBlockPeek
* virDomainMemoryPeek
*
* LIBVIRT_0_5.0
* virEventRegisterImpl
* virConnectDomainEventRegister
* virConnectDomainEventDeregister
*
* LIBVIRT_0.6.0
* virConnectRef
* virDomainRef
* virNetworkRef
* virStoragePoolRef
* virStorageVolRef
* virNodeDeviceRef
*
* LIBVIRT_0.6.1
* virFreeError
* virSaveLastError
* virDomainGetSecurityLabel;
* virNodeGetSecurityModel;
*
* LIBVIRT_0.6.4
* virInterfaceRef
*
* LIBVIRT_0.7.1
* virSecretRef
*
* LIBVIRT_0.7.2
* virStreamRef
*
* LIBVIRT_0.8.0
* virNWFilterRef
*
*/
public interface Libvirt extends Library {
// Callbacks
/**
* Callback interface for authorization
*/
interface VirConnectAuthCallback extends Callback {
public int authCallback(virConnectCredential cred, int ncred, Pointer cbdata);
}
/**
* Error callback
*/
interface VirErrorCallback extends Callback {
public void errorCallback(Pointer userData, virError error);
}
/**
* Stream callbacks
*/
interface VirStreamSinkFunc extends Callback {
public int sinkCallback(StreamPointer virStreamPtr, String data, NativeLong nbytes, Pointer opaque) ;
}
interface VirStreamSourceFunc extends Callback {
public int sourceCallback(StreamPointer virStreamPtr, String data, NativeLong nbytes, Pointer opaque) ;
}
interface VirStreamEventCallback extends Callback {
public void eventCallback(StreamPointer virStreamPointer, int events, Pointer opaque) ;
}
/**
* Generic Callbacks
*/
interface VirFreeCallback extends Callback {
public void freeCallback(Pointer opaque) ;
}
interface VirConnectDomainEventGenericCallback extends Callback {
public void eventCallback(ConnectionPointer virConnectPtr, DomainPointer virDomainPointer, Pointer opaque) ;
}
Libvirt INSTANCE = (Libvirt) Native.loadLibrary("virt-0", Libvirt.class);
// Constants we need
public static int VIR_UUID_BUFLEN = 16;
public static int VIR_UUID_STRING_BUFLEN = (36 + 1);
public static int VIR_DOMAIN_SCHED_FIELD_LENGTH = 80;
// Connection Functions
public String virConnectBaselineCPU(ConnectionPointer virConnectPtr, String[] xmlCPUs, int ncpus, int flags);
public int virConnCopyLastError(ConnectionPointer virConnectPtr, virError to);
public int virConnectClose(ConnectionPointer virConnectPtr);
public int virConnectCompareCPU(ConnectionPointer virConnectPtr, String xmlDesc, int flags);
public int virConnectDomainEventRegisterAny(ConnectionPointer virConnectPtr, DomainPointer virDomainPtr, int eventID, Libvirt.VirConnectDomainEventGenericCallback cb, Pointer opaque, Libvirt.VirFreeCallback freecb);
public int virConnectDomainEventDeregisterAny(ConnectionPointer virConnectPtr, int callbackID) ;
public void virConnSetErrorFunc(ConnectionPointer virConnectPtr, Pointer userData, VirErrorCallback callback);
public int virConnectIsEncrypted(ConnectionPointer virConnectPtr) ;
public int virConnectIsSecure(ConnectionPointer virConnectPtr) ;
public String virConnectFindStoragePoolSources(ConnectionPointer virConnectPtr, String type, String srcSpec, int flags);
public String virConnectGetCapabilities(ConnectionPointer virConnectPtr);
public String virConnectGetHostname(ConnectionPointer virConnectPtr);
public int virConnectGetLibVersion(ConnectionPointer virConnectPtr, LongByReference libVer);
public int virConnectGetMaxVcpus(ConnectionPointer virConnectPtr, String type);
public String virConnectGetType(ConnectionPointer virConnectPtr);
public String virConnectGetURI(ConnectionPointer virConnectPtr);
public int virConnectGetVersion(ConnectionPointer virConnectPtr, LongByReference hvVer);
public int virConnectListDefinedDomains(ConnectionPointer virConnectPtr, String[] name, int maxnames);
public int virConnectListDefinedNetworks(ConnectionPointer virConnectPtr, String[] name, int maxnames);
public int virConnectListDefinedStoragePools(ConnectionPointer virConnectPtr, String[] names, int maxnames);
public int virConnectListDefinedInterfaces(ConnectionPointer virConnectPtr, String[] name, int maxNames);
public int virConnectListDomains(ConnectionPointer virConnectPtr, int[] ids, int maxnames);
public int virConnectListInterfaces(ConnectionPointer virConnectPtr, String[] name, int maxNames);
public int virConnectListNetworks(ConnectionPointer virConnectPtr, String[] name, int maxnames);
public int virConnectListNWFilters(ConnectionPointer virConnectPtr, String[] name, int maxnames);
public int virConnectListSecrets(ConnectionPointer virConnectPtr, String[] uids, int maxUids);
public int virConnectListStoragePools(ConnectionPointer virConnectPtr, String[] names, int maxnames);
public int virConnectNumOfDefinedDomains(ConnectionPointer virConnectPtr);
public int virConnectNumOfDefinedNetworks(ConnectionPointer virConnectPtr);
public int virConnectNumOfDefinedInterfaces(ConnectionPointer virConnectPtr);
public int virConnectNumOfDefinedStoragePools(ConnectionPointer virConnectPtr);
public int virConnectNumOfDomains(ConnectionPointer virConnectPtr);
public int virConnectNumOfInterfaces(ConnectionPointer virConnectPtr);
public int virConnectNumOfNetworks(ConnectionPointer virConnectPtr);
public int virConnectNumOfNWFilters(ConnectionPointer virConnectPtr);
public int virConnectNumOfSecrets(ConnectionPointer virConnectPtr);
public int virConnectNumOfStoragePools(ConnectionPointer virConnectPtr);
public ConnectionPointer virConnectOpen(String name);
public ConnectionPointer virConnectOpenAuth(String name, virConnectAuth auth, int flags);
public ConnectionPointer virConnectOpenReadOnly(String name);
public virError virConnGetLastError(ConnectionPointer virConnectPtr);
public int virConnResetLastError(ConnectionPointer virConnectPtr);
public String virConnectDomainXMLFromNative(ConnectionPointer virConnectPtr, String nativeFormat,
String nativeConfig, int flags);
public String virConnectDomainXMLToNative(ConnectionPointer virConnectPtr, String nativeFormat, String domainXML,
int flags);
// Global functions
public int virGetVersion(LongByReference libVer, String type, LongByReference typeVer);
public int virInitialize();
public int virCopyLastError(virError error);
public virError virGetLastError();
public void virResetLastError();
public void virSetErrorFunc(Pointer userData, VirErrorCallback callback);
// Domain functions
public int virDomainAbortJob(DomainPointer virDomainPtr);
public int virDomainAttachDevice(DomainPointer virDomainPtr, String deviceXML);
public int virDomainAttachDeviceFlags(DomainPointer virDomainPtr, String deviceXML, int flags);
public int virDomainBlockStats(DomainPointer virDomainPtr, String path, virDomainBlockStats stats, int size);
public int virDomainCoreDump(DomainPointer virDomainPtr, String to, int flags);
public int virDomainCreate(DomainPointer virDomainPtr);
public int virDomainCreateWithFlags(DomainPointer virDomainPtr, int flags);
public DomainPointer virDomainCreateLinux(ConnectionPointer virConnectPtr, String xmlDesc, int flags);
public DomainPointer virDomainCreateXML(ConnectionPointer virConnectPtr, String xmlDesc, int flags);
public DomainPointer virDomainDefineXML(ConnectionPointer virConnectPtr, String xmlDesc);
public int virDomainDestroy(DomainPointer virDomainPtr);
public int virDomainDetachDevice(DomainPointer virDomainPtr, String deviceXML);
public int virDomainDetachDeviceFlags(DomainPointer virDomainPtr, String deviceXML, int flags);
public int virDomainFree(DomainPointer virDomainPtr);
public int virDomainGetAutostart(DomainPointer virDomainPtr, IntByReference value);
public ConnectionPointer virDomainGetConnect(DomainPointer virDomainPtr);
public int virDomainGetBlockInfo(DomainPointer virDomainPtr, String path, virDomainBlockInfo info, int flags);
public int virDomainGetID(DomainPointer virDomainPtr);
public int virDomainGetInfo(DomainPointer virDomainPtr, virDomainInfo vInfo);
public int virDomainGetJobInfo(DomainPointer virDomainPtr, virDomainJobInfo vInfo);
public NativeLong virDomainGetMaxMemory(DomainPointer virDomainPtr);
public int virDomainGetMaxVcpus(DomainPointer virDomainPtr);
public String virDomainGetName(DomainPointer virDomainPtr);
public String virDomainGetOSType(DomainPointer virDomainPtr);
public int virDomainGetSchedulerParameters(DomainPointer virDomainPtr, virSchedParameter[] params,
IntByReference nparams);
public String virDomainGetSchedulerType(DomainPointer virDomainPtr, IntByReference nparams);
public int virDomainGetUUID(DomainPointer virDomainPtr, byte[] uuidString);
public int virDomainGetUUIDString(DomainPointer virDomainPtr, byte[] uuidString);
public int virDomainGetVcpus(DomainPointer virDomainPtr, virVcpuInfo[] info, int maxInfo, byte[] cpumaps, int maplen);
public String virDomainGetXMLDesc(DomainPointer virDomainPtr, int flags);
public int virDomainHasCurrentSnapshot(DomainPointer virDomainPtr, int flags);
public int virDomainHasManagedSaveImage(DomainPointer virDomainPtr, int flags);
public int virDomainInterfaceStats(DomainPointer virDomainPtr, String path, virDomainInterfaceStats stats, int size);
public int virDomainIsActive(DomainPointer virDomainPtr);
public int virDomainIsPersistent(DomainPointer virDomainPtr);
public DomainPointer virDomainLookupByID(ConnectionPointer virConnectPtr, int id);
public DomainPointer virDomainLookupByName(ConnectionPointer virConnectPtr, String name);
public DomainPointer virDomainLookupByUUID(ConnectionPointer virConnectPtr, byte[] uuidBytes);
public DomainPointer virDomainLookupByUUIDString(ConnectionPointer virConnectPtr, String uuidstr);
public int virDomainManagedSave(DomainPointer virDomainPtr, int flags);
public int virDomainManagedSaveRemove(DomainPointer virDomainPtr, int flags);
public DomainPointer virDomainMigrate(DomainPointer virDomainPtr, ConnectionPointer virConnectPtr,
NativeLong flags, String dname, String uri, NativeLong bandwidth);
public int virDomainMigrateSetMaxDowntime(DomainPointer virDomainPtr, long downtime, int flags);
public int virDomainMigrateToURI(DomainPointer virDomainPtr, String duri,
NativeLong flags, String dname, NativeLong bandwidth);
public int virDomainMemoryStats(DomainPointer virDomainPtr, virDomainMemoryStats[] stats, int nr_stats, int flags);
public int virDomainPinVcpu(DomainPointer virDomainPtr, int vcpu, byte[] cpumap, int maplen);
public int virDomainReboot(DomainPointer virDomainPtr, int flags);
public int virDomainRestore(ConnectionPointer virConnectPtr, String from);
public int virDomainRevertToSnapshot(DomainSnapshotPointer virDomainSnapshotPtr, int flags);
public int virDomainResume(DomainPointer virDomainPtr);
public int virDomainSave(DomainPointer virDomainPtr, String to);
public int virDomainSetAutostart(DomainPointer virDomainPtr, int autoStart);
public int virDomainSetMaxMemory(DomainPointer virDomainPtr, NativeLong maxMemory);
public int virDomainSetMemory(DomainPointer virDomainPtr, NativeLong maxMemory);
public int virDomainSetSchedulerParameters(DomainPointer virDomainPtr, virSchedParameter[] params, int nparams);
public int virDomainSetVcpus(DomainPointer virDomainPtr, int nvcpus);
public int virDomainShutdown(DomainPointer virDomainPtr);
public int virDomainSuspend(DomainPointer virDomainPtr);
public int virDomainUpdateDeviceFlags(DomainPointer virDomainPtr, String xml, int flags);
public int virDomainUndefine(DomainPointer virDomainPtr);
// Network functions
public ConnectionPointer virNetworkGetConnect(NetworkPointer virnetworkPtr);
public int virNetworkCreate(NetworkPointer virConnectPtr);
public NetworkPointer virNetworkCreateXML(ConnectionPointer virConnectPtr, String xmlDesc);
public NetworkPointer virNetworkDefineXML(ConnectionPointer virConnectPtr, String xmlDesc);
public int virNetworkDestroy(NetworkPointer virConnectPtr);
public int virNetworkFree(NetworkPointer virConnectPtr);
public int virNetworkGetAutostart(NetworkPointer virNetworkPtr, IntByReference value);
public String virNetworkGetBridgeName(NetworkPointer virNetworkPtr);
public String virNetworkGetName(NetworkPointer virNetworkPtr);
public int virNetworkGetUUID(NetworkPointer virNetworkPtr, byte[] uuidString);
public int virNetworkGetUUIDString(NetworkPointer virNetworkPtr, byte[] uuidString);
public String virNetworkGetXMLDesc(NetworkPointer virNetworkPtr, int flags);
public int virNetworkIsActive(NetworkPointer virNetworkPtr);
public int virNetworkIsPersistent(NetworkPointer virNetworkPtr);
public NetworkPointer virNetworkLookupByName(ConnectionPointer virConnectPtr, String name);
public NetworkPointer virNetworkLookupByUUID(ConnectionPointer virConnectPtr, byte[] uuidBytes);
public NetworkPointer virNetworkLookupByUUIDString(ConnectionPointer virConnectPtr, String uuidstr);
public int virNetworkSetAutostart(NetworkPointer virConnectPtr, int autoStart);
public int virNetworkUndefine(NetworkPointer virConnectPtr);
// Node functions
public int virNodeGetInfo(ConnectionPointer virConnectPtr, virNodeInfo virNodeInfo);
public int virNodeGetCellsFreeMemory(ConnectionPointer virConnectPtr, LongByReference freeMems, int startCell,
int maxCells);
public long virNodeGetFreeMemory(ConnectionPointer virConnectPtr);
// Node/Device functions
public int virNodeNumOfDevices(ConnectionPointer virConnectPtr, String capabilityName, int flags);
public int virNodeListDevices(ConnectionPointer virConnectPtr, String capabilityName, String[] names, int maxnames,
int flags);
public DevicePointer virNodeDeviceLookupByName(ConnectionPointer virConnectPtr, String name);
public String virNodeDeviceGetName(DevicePointer virDevicePointer);
public String virNodeDeviceGetParent(DevicePointer virDevicePointer);
public int virNodeDeviceNumOfCaps(DevicePointer virDevicePointer);
public int virNodeDeviceListCaps(DevicePointer virDevicePointer, String[] names, int maxNames);
public String virNodeDeviceGetXMLDesc(DevicePointer virDevicePointer);
public int virNodeDeviceFree(DevicePointer virDevicePointer);
public int virNodeDeviceDettach(DevicePointer virDevicePointer);
public int virNodeDeviceReAttach(DevicePointer virDevicePointer);
public int virNodeDeviceReset(DevicePointer virDevicePointer);
public DevicePointer virNodeDeviceCreateXML(ConnectionPointer virConnectPtr, String xml, int flags);
public int virNodeDeviceDestroy(DevicePointer virDevicePointer);
// Storage Pool
public int virStoragePoolBuild(StoragePoolPointer storagePoolPtr, int flags);
public int virStoragePoolCreate(StoragePoolPointer storagePoolPtr, int flags);
public StoragePoolPointer virStoragePoolCreateXML(ConnectionPointer virConnectPtr, String xml, int flags);
public StoragePoolPointer virStoragePoolDefineXML(ConnectionPointer virConnectPtr, String xml, int flags);
public int virStoragePoolDelete(StoragePoolPointer storagePoolPtr, int flags);
public int virStoragePoolDestroy(StoragePoolPointer storagePoolPtr);
public int virStoragePoolFree(StoragePoolPointer storagePoolPtr);
public int virStoragePoolGetAutostart(StoragePoolPointer storagePoolPtr, IntByReference value);
public int virStoragePoolGetInfo(StoragePoolPointer storagePoolPtr, virStoragePoolInfo info);
public String virStoragePoolGetName(StoragePoolPointer storagePoolPtr);
public int virStoragePoolGetUUID(StoragePoolPointer storagePoolPtr, byte[] uuidString);
public int virStoragePoolGetUUIDString(StoragePoolPointer storagePoolPtr, byte[] uuidString);
public String virStoragePoolGetXMLDesc(StoragePoolPointer storagePoolPtr, int flags);
public int virStoragePoolListVolumes(StoragePoolPointer storagePoolPtr, String[] names, int maxnames);
public int virStoragePoolIsActive(StoragePoolPointer storagePoolPtr);
public int virStoragePoolIsPersistent(StoragePoolPointer storagePoolPtr);
public StoragePoolPointer virStoragePoolLookupByName(ConnectionPointer virConnectPtr, String name);
public StoragePoolPointer virStoragePoolLookupByUUID(ConnectionPointer virConnectPtr, byte[] uuidBytes);
public StoragePoolPointer virStoragePoolLookupByUUIDString(ConnectionPointer virConnectPtr, String uuidstr);
public StoragePoolPointer virStoragePoolLookupByVolume(StorageVolPointer storageVolPtr);
public int virStoragePoolNumOfVolumes(StoragePoolPointer storagePoolPtr);
public int virStoragePoolRefresh(StoragePoolPointer storagePoolPtr);
public int virStoragePoolSetAutostart(StoragePoolPointer storagePoolPtr, int autostart);
public int virStoragePoolUndefine(StoragePoolPointer storagePoolPtr);
// Storage Vol
public StorageVolPointer virStorageVolCreateXML(StoragePoolPointer storagePoolPtr, String xml, int flags);
public StorageVolPointer virStorageVolCreateXMLFrom(StoragePoolPointer storagePoolPtr, String xml,
StorageVolPointer cloneVolume, int flags);
public int virStorageVolDelete(StorageVolPointer storageVolPtr, int flags);
public int virStorageVolFree(StorageVolPointer storageVolPtr);
public int virStorageVolGetInfo(StorageVolPointer storageVolPtr, virStorageVolInfo info);
public String virStorageVolGetKey(StorageVolPointer storageVolPtr);
public String virStorageVolGetName(StorageVolPointer storageVolPtr);
public String virStorageVolGetPath(StorageVolPointer storageVolPtr);
public String virStorageVolGetXMLDesc(StorageVolPointer storageVolPtr, int flags);
public StorageVolPointer virStorageVolLookupByKey(ConnectionPointer virConnectPtr, String name);
public StorageVolPointer virStorageVolLookupByName(StoragePoolPointer storagePoolPtr, String name);
public StorageVolPointer virStorageVolLookupByPath(ConnectionPointer virConnectPtr, String path);
public int virStorageVolWipe(StorageVolPointer storageVolPtr, int flags);
// Interface Methods
public int virInterfaceCreate(InterfacePointer virDevicePointer);
public InterfacePointer virInterfaceDefineXML(ConnectionPointer virConnectPtr, String xml, int flags);
public int virInterfaceDestroy(InterfacePointer virDevicePointer);
public int virInterfaceFree(InterfacePointer virDevicePointer);
public String virInterfaceGetName(InterfacePointer virInterfacePtr);
public String virInterfaceGetMACString(InterfacePointer virInterfacePtr);
public String virInterfaceGetXMLDesc(InterfacePointer virInterfacePtr, int flags);
public int virInterfaceIsActive(InterfacePointer virDevicePointer);
public InterfacePointer virInterfaceLookupByMACString(ConnectionPointer virConnectPtr, String mac);
public InterfacePointer virInterfaceLookupByName(ConnectionPointer virConnectPtr, String name);
public int virInterfaceUndefine(InterfacePointer virDevicePointer);
// Secret Methods
public ConnectionPointer virSecretGetConnect(SecretPointer virSecretPtr);
public int virSecretFree(SecretPointer virSecretPtr);
public SecretPointer virSecretDefineXML(ConnectionPointer virConnectPtr, String xml, int flags);
public int virSecretGetUUID(SecretPointer virSecretPtr, byte[] uuidString);
public int virSecretGetUUIDString(SecretPointer virSecretPtr, byte[] uuidString);
public String virSecretGetUsageID(SecretPointer virSecretPtr);
public String virSecretGetValue(SecretPointer virSecretPtr, NativeLong value_size, int flags);
public String virSecretGetXMLDesc(SecretPointer virSecretPtr, int flags);
public SecretPointer virSecretLookupByUsage(ConnectionPointer virConnectPtr, int usageType, String usageID);
public SecretPointer virSecretLookupByUUID(ConnectionPointer virConnectPtr, byte[] uuidBytes);
public SecretPointer virSecretLookupByUUIDString(ConnectionPointer virConnectPtr, String uuidstr);
public int virSecretSetValue(SecretPointer virSecretPtr, String value, NativeLong value_size, int flags);
public int virSecretUndefine(SecretPointer virSecretPtr);
//Stream Methods
public int virStreamAbort(StreamPointer virStreamPtr) ;
public int virStreamEventAddCallback(StreamPointer virStreamPtr, int events, Libvirt.VirStreamEventCallback cb,
Pointer opaque, Libvirt.VirFreeCallback ff);
public int virStreamEventUpdateCallback(StreamPointer virStreamPtr, int events);
public int virStreamEventRemoveCallback(StreamPointer virStreamPtr);
public int virStreamFinish(StreamPointer virStreamPtr) ;
public int virStreamFree(StreamPointer virStreamPtr) ;
public StreamPointer virStreamNew(ConnectionPointer virConnectPtr, int flags) ;
public int virStreamSend(StreamPointer virStreamPtr, String data, NativeLong size);
public int virStreamSendAll(StreamPointer virStreamPtr, Libvirt.VirStreamSourceFunc handler, Pointer opaque);
public int virStreamRecv(StreamPointer virStreamPtr, byte[] data, NativeLong length);
public int virStreamRecvAll(StreamPointer virStreamPtr, Libvirt.VirStreamSinkFunc handler, Pointer opaque);
//DomainSnapshot Methods
public DomainSnapshotPointer virDomainSnapshotCreateXML(DomainPointer virDomainPtr, String xmlDesc, int flags);
public DomainSnapshotPointer virDomainSnapshotCurrent(DomainPointer virDomainPtr, int flags);
public int virDomainSnapshotDelete(DomainSnapshotPointer virDomainSnapshotPtr, int flags);
public String virDomainSnapshotGetXMLDesc(DomainSnapshotPointer virDomainSnapshotPtr, int flags);
public int virDomainSnapshotFree(DomainSnapshotPointer virDomainSnapshotPtr);
public int virDomainSnapshotListNames(DomainPointer virDomainPtr, String[] names, int nameslen, int flags);
public DomainSnapshotPointer virDomainSnapshotLookupByName(DomainPointer virDomainPtr, String name, int flags);
public int virDomainSnapshotNum(DomainPointer virDomainPtr, int flags);
// Network Filter Methods
public String virNWFilterGetXMLDesc(NetworkFilterPointer virNWFilterPtr, int flags);
public NetworkFilterPointer virNWFilterDefineXML(ConnectionPointer virConnectPtr, String xml);
public int virNWFilterFree(NetworkFilterPointer virNWFilterPtr);
public NetworkFilterPointer virNWFilterLookupByName(ConnectionPointer virConnectPtr, String name);
public NetworkFilterPointer virNWFilterLookupByUUID(ConnectionPointer virConnectPtr, byte[] uuidBytes);
public NetworkFilterPointer virNWFilterLookupByUUIDString(ConnectionPointer virConnectPtr, String uuidstr);
public String virNWFilterGetName(NetworkFilterPointer virNWFilterPtr);
public int virNWFilterGetUUID(NetworkFilterPointer virNWFilterPtr, byte[] uuidString);
public int virNWFilterGetUUIDString(NetworkFilterPointer virNWFilterPtr, byte[] uuidString);
public int virNWFilterUndefine(NetworkFilterPointer virNWFilterPtr);
}