[Libvir] [Libvirt] Proposal to add 3 functions for VBDs (Virtual Block Devices)

michel.ponceau at bull.net michel.ponceau at bull.net
Thu Aug 24 15:32:19 UTC 2006


After the new VCPU functions, we also need Virtual Block Device management 
equivalent to Xen commands:
    'xm block-list', 'xm block-attach', 'xm block-detach'.
I propose to add in Libvirt the following 3 functions:
/**
 * virDomainGetVbdevs:
 * @domain: pointer to domain object, or NULL for Domain0
 * @info: pointer to an array of virVbdevInfo structures
 * @maxinfo: number of structures in info array
 * 
 * Extract information about virtual block devices of domain, store it in 
info.
 *
 * Returns the number of info filled in case of success, -1 in case of 
failure.
 */
int virDomainGetVbdevs(virDomainPtr domain, virVbdevInfoPtr info, int 
maxinfo)

/**
 * virDomainCreateVbdev:
 * @domain: pointer to domain object, or NULL for Domain0
 * @number: virtual device number
 * @mode: read-only (VIR_VBDMD_RO), or read/write (VIR_VBDMD_RW)
 * @bkendID: ID of domain hosting the backend device (usually 0 for 
domain0)
 * @bkend: pointer to backend device path
 * 
 * Create a virtual block device.
 *
 * Returns 0 in case of success, -1 in case of failure.
 */
int virDomainCreateVbdev(virDomainPtr domain, unsigned int number, int 
mode,
                     int bkendID, char *bkend)

/**
 * virDomainDestroyVbdev:
 * @domain: pointer to domain object, or NULL for Domain0
 * @number: virtual device number
 * 
 * Destroy a virtual block device.
 *
 * Returns 0 in case of success, -1 in case of failure.
 */
int virDomainDestroyVbdev(virDomainPtr domain, unsigned int number)

Structure in libvirt.h:
/**
 * virVbdevInfo: information structure for a Virtual Block Device in a 
domain
 */
typedef struct _virVbdevInfo virVbdevInfo;
struct _virVbdevInfo {
    unsigned int number;        /* virtual device number */
    int state;
    int evtChn;
    int ringRef;
    int bkendID;                /* ID of domain hosting the backend device 
*/
    char bkend[128];
};
typedef virVbdevInfo *virVbdevInfoPtr;

/* Virtual Block Device access modes: read-only or read/write */
#define VIR_VBDMD_RO    0
#define VIR_VBDMD_RW    1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20060824/ea88a73c/attachment-0001.htm>


More information about the libvir-list mailing list