From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Lalancette Subject: [PATCH 2/3]: Blktap kernel compat layer Date: Wed, 09 Jul 2008 02:26:05 +0200 Message-ID: <4874059D.7060005@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070304090303050807050800" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------070304090303050807050800 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit The kernel side of the blktap extended vbd compatibility layer. Signed-off-by: Chris Lalancette --------------070304090303050807050800 Content-Type: text/x-patch; name="xen-unstable-blktap-kernel-compat.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xen-unstable-blktap-kernel-compat.patch" diff -r db4f08203b8a 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 02:13:03 2008 +0200 @@ -89,8 +89,13 @@ /*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 @@ 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 @@ #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 @@ } 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: --------------070304090303050807050800 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------070304090303050807050800--