From owner-p4-projects@FreeBSD.ORG Mon Jun 29 11:47:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B9AF10656A5; Mon, 29 Jun 2009 11:47:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B075E1065692 for ; Mon, 29 Jun 2009 11:47:55 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9E8088FC25 for ; Mon, 29 Jun 2009 11:47:55 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5TBltam003097 for ; Mon, 29 Jun 2009 11:47:55 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5TBltBH003095 for perforce@freebsd.org; Mon, 29 Jun 2009 11:47:55 GMT (envelope-from mav@freebsd.org) Date: Mon, 29 Jun 2009 11:47:55 GMT Message-Id: <200906291147.n5TBltBH003095@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 165388 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jun 2009 11:47:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=165388 Change 165388 by mav@mav_mavbook on 2009/06/29 11:46:55 Add user-level memory map/unmap support for XPT_ATA_IO. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#30 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_pass.c#28 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#30 (text+ko) ==== @@ -604,6 +604,15 @@ dirs[0] = ccb->ccb_h.flags & CAM_DIR_MASK; numbufs = 1; break; + case XPT_ATA_IO: + if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) + return(0); + + data_ptrs[0] = &ccb->ataio.data_ptr; + lengths[0] = ccb->ataio.dxfer_len; + dirs[0] = ccb->ccb_h.flags & CAM_DIR_MASK; + numbufs = 1; + break; default: return(EINVAL); break; /* NOTREACHED */ @@ -739,6 +748,10 @@ data_ptrs[0] = &ccb->csio.data_ptr; numbufs = min(mapinfo->num_bufs_used, 1); break; + case XPT_ATA_IO: + data_ptrs[0] = &ccb->ataio.data_ptr; + numbufs = min(mapinfo->num_bufs_used, 1); + break; default: /* allow ourselves to be swapped once again */ PRELE(curproc); ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_pass.c#28 (text+ko) ==== @@ -528,7 +528,8 @@ * ready), it will save a few cycles if we check for it here. */ if (((ccb->ccb_h.flags & CAM_DATA_PHYS) == 0) - && (((ccb->ccb_h.func_code == XPT_SCSI_IO) + && (((ccb->ccb_h.func_code == XPT_SCSI_IO || + ccb->ccb_h.func_code == XPT_ATA_IO) && ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE)) || (ccb->ccb_h.func_code == XPT_DEV_MATCH))) {