[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] Blktap kernel compat layer
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1215596648 -3600 # Node ID f1d726b984a35e13ff69402b30b57611328c85bb # Parent db4f08203b8a3ecd8a633a3593f5b4fd363ea37c Blktap kernel compat layer The kernel side of the blktap extended vbd compatibility layer. Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx> --- drivers/xen/blktap/blktap.c | 30 ++++++++++++++++++++++++++++-- 1 files changed, 28 insertions(+), 2 deletions(-) diff -r db4f08203b8a -r f1d726b984a3 drivers/xen/blktap/blktap.c --- a/drivers/xen/blktap/blktap.c Tue Jul 08 09:31:24 2008 +0100 +++ b/drivers/xen/blktap/blktap.c Wed Jul 09 10:44:08 2008 +0100 @@ -89,8 +89,13 @@ static int mmap_pages = MMAP_PAGES; /*Data struct handed back to userspace for tapdisk device to VBD mapping*/ typedef struct domid_translate { unsigned short domid; + unsigned short busid; +} domid_translate_t ; + +typedef struct domid_translate_ext { + unsigned short domid; u32 busid; -} domid_translate_t ; +} domid_translate_ext_t ; /*Data struct associated with each of the tapdisk devices*/ typedef struct tap_blkif { @@ -110,7 +115,7 @@ typedef struct tap_blkif { unsigned long *idx_map; /*Record the user ring id to kern [req id, idx] tuple */ blkif_t *blkif; /*Associate blkif with tapdev */ - struct domid_translate trans; /*Translation from domid to bus. */ + struct domid_translate_ext trans; /*Translation from domid to bus. */ } tap_blkif_t; static struct tap_blkif *tapfds[MAX_TAP_DEV]; @@ -213,6 +218,7 @@ static int blktap_major; #define BLKTAP_IOCTL_MAJOR 7 #define BLKTAP_QUERY_ALLOC_REQS 8 #define BLKTAP_IOCTL_FREEINTF 9 +#define BLKTAP_IOCTL_NEWINTF_EXT 50 #define BLKTAP_IOCTL_PRINT_IDXS 100 /* blktap switching modes: (Set with BLKTAP_IOCTL_SETMODE) */ @@ -782,6 +788,26 @@ static int blktap_ioctl(struct inode *in } info->trans.domid = tr->domid; info->trans.busid = tr->busid; + return info->minor; + } + case BLKTAP_IOCTL_NEWINTF_EXT: + { + void __user *udata = (void __user *) arg; + domid_translate_ext_t tr; + + if (copy_from_user(&tr, udata, sizeof(domid_translate_ext_t))) + return -EFAULT; + + DPRINTK("NEWINTF_EXT Req for domid %d and bus id %d\n", + tr.domid, tr.busid); + info = get_next_free_dev(); + if (!info) { + WPRINTK("Error initialising /dev/xen/blktap - " + "No more devices\n"); + return -1; + } + info->trans.domid = tr.domid; + info->trans.busid = tr.busid; return info->minor; } case BLKTAP_IOCTL_FREEINTF: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |