PERFORCE change 167985 for review
Alexander Motin
mav at FreeBSD.org
Sun Aug 30 16:44:44 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=167985
Change 167985 by mav at mav_mavbook on 2009/08/30 16:44:42
IFC
Affected files ...
.. //depot/projects/scottl-camlock/src/contrib/file/magic2mime#3 branch
.. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#18 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#15 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#15 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#26 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#35 integrate
.. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 integrate
.. //depot/projects/scottl-camlock/src/tools/build/options/WITH_BIND_LIBS#3 branch
Differences ...
==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#18 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.60 2009/07/10 17:42:53 scottl Exp $");
+__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.62 2009/08/30 16:31:25 mav Exp $");
#include <sys/ioctl.h>
#include <sys/stdint.h>
@@ -1212,9 +1212,9 @@
/*dxfer_len*/sizeof(struct ata_params),
timeout ? timeout : 30 * 1000);
if (cgd.protocol == PROTO_ATA)
- ata_36bit_cmd(&ccb->ataio, ATA_ATA_IDENTIFY, 0, 0, 0);
+ ata_28bit_cmd(&ccb->ataio, ATA_ATA_IDENTIFY, 0, 0, 0);
else
- ata_36bit_cmd(&ccb->ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0);
+ ata_28bit_cmd(&ccb->ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0);
/* Disable freezing the device queue */
ccb->ccb_h.flags |= CAM_DEV_QFRZDIS;
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#15 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.2 2009/08/30 16:31:25 mav Exp $");
#include <sys/param.h>
@@ -91,7 +91,7 @@
}
void
-ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
+ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
uint32_t lba, uint8_t sector_count)
{
bzero(&ataio->cmd, sizeof(ataio->cmd));
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#15 (text+ko) ====
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: head/sys/cam/ata/ata_all.h 195534 2009-07-10 08:18:08Z scottl $
+ * $FreeBSD: src/sys/cam/ata/ata_all.h,v 1.2 2009/08/30 16:31:25 mav Exp $
*/
#ifndef CAM_ATA_ALL_H
@@ -84,7 +84,7 @@
int ata_version(int ver);
void ata_print_ident(struct ata_params *ident_data);
-void ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
+void ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
uint32_t lba, uint8_t sector_count);
void ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features,
uint64_t lba, uint16_t sector_count);
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#26 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.3 2009/08/30 15:36:56 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.4 2009/08/30 16:31:25 mav Exp $");
#include <sys/param.h>
@@ -283,7 +283,7 @@
if (softc->flags & ADA_FLAG_CAN_48BIT)
ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0);
else
- ata_36bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0);
+ ata_28bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0);
cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0,
/*sense_flags*/0, softc->disk->d_devstat);
@@ -399,7 +399,7 @@
ata_48bit_cmd(&ccb.ataio, ATA_WRITE_DMA48,
0, lba, count);
} else {
- ata_36bit_cmd(&ccb.ataio, ATA_WRITE_DMA,
+ ata_28bit_cmd(&ccb.ataio, ATA_WRITE_DMA,
0, lba, count);
}
xpt_polled_action(&ccb);
@@ -429,7 +429,7 @@
if (softc->flags & ADA_FLAG_CAN_48BIT)
ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE48, 0, 0, 0);
else
- ata_36bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0);
+ ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0);
xpt_polled_action(&ccb);
if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)
@@ -846,18 +846,18 @@
count = 0;
if (softc->flags & ADA_FLAG_CAN_DMA) {
if (bp->bio_cmd == BIO_READ) {
- ata_36bit_cmd(ataio, ATA_READ_DMA,
+ ata_28bit_cmd(ataio, ATA_READ_DMA,
0, lba, count);
} else {
- ata_36bit_cmd(ataio, ATA_WRITE_DMA,
+ ata_28bit_cmd(ataio, ATA_WRITE_DMA,
0, lba, count);
}
} else {
if (bp->bio_cmd == BIO_READ) {
- ata_36bit_cmd(ataio, ATA_READ_MUL,
+ ata_28bit_cmd(ataio, ATA_READ_MUL,
0, lba, count);
} else {
- ata_36bit_cmd(ataio, ATA_WRITE_MUL,
+ ata_28bit_cmd(ataio, ATA_WRITE_MUL,
0, lba, count);
}
}
@@ -877,7 +877,7 @@
if (softc->flags & ADA_FLAG_CAN_48BIT)
ata_48bit_cmd(ataio, ATA_FLUSHCACHE48, 0, 0, 0);
else
- ata_36bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0);
+ ata_28bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0);
break;
}
start_ccb->ccb_h.ccb_state = ADA_CCB_BUFFER_IO;
@@ -913,7 +913,7 @@
0,
ada_default_timeout*1000);
- ata_36bit_cmd(ataio, ATA_SET_MULTI, 0, 0, softc->secsperint);
+ ata_28bit_cmd(ataio, ATA_SET_MULTI, 0, 0, softc->secsperint);
start_ccb->ccb_h.ccb_state = ADA_CCB_SET_MULTI;
xpt_action(start_ccb);
}
@@ -1161,7 +1161,7 @@
if (softc->flags & ADA_FLAG_CAN_48BIT)
ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE48, 0, 0, 0);
else
- ata_36bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0);
+ ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0);
xpt_polled_action(&ccb);
if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#35 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.4 2009/08/18 09:27:17 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.5 2009/08/30 16:31:25 mav Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -331,9 +331,9 @@
/*dxfer_len*/sizeof(struct ata_params),
30 * 1000);
if (periph->path->device->protocol == PROTO_ATA)
- ata_36bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0);
+ ata_28bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0);
else
- ata_36bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0);
+ ata_28bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0);
break;
}
case PROBE_SETMODE:
@@ -349,7 +349,7 @@
/*data_ptr*/NULL,
/*dxfer_len*/0,
30 * 1000);
- ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0,
+ ata_28bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0,
ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6));
break;
}
==== //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 (text+ko) ====
@@ -1,112 +1,70 @@
/*
- * CDDL HEADER START
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part. Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
*
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
*
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
*
- * CDDL HEADER END
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
*
- * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.4 2008/04/22 07:42:59 jb Exp $
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California 94043
*/
-/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
-/*
- * Portions of this source code were derived from Berkeley 4.3 BSD
- * under license from the Regents of the University of California.
- */
-
#ifndef _OPENSOLARIS_RPC_XDR_H_
#define _OPENSOLARIS_RPC_XDR_H_
#include_next <rpc/xdr.h>
#ifndef _KERNEL
-#include_next <rpc/xdr.h>
-/*
- * Strangely, my glibc version (2.3.6) doesn't have xdr_control(), so
- * we have to hack it in here (source taken from OpenSolaris).
- * By the way, it is assumed the xdrmem implementation is used.
- */
-
-#undef xdr_control
-#define xdr_control(a,b,c) xdrmem_control(a,b,c)
+#include <assert.h>
/*
- * These are the request arguments to XDR_CONTROL.
+ * Taken from sys/xdr/xdr_mem.c.
*
- * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream.
- * XDR_SKIPBYTES - skips the next N bytes in the XDR stream.
- * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from
- * the XDR stream being moved over RDMA
- * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in
- * the XDR stream moving over RDMA.
+ * FreeBSD's userland XDR doesn't implement control method (only the kernel),
+ * but OpenSolaris nvpair still depend on it, so we have to implement it here.
*/
-#define XDR_PEEK 2
-#define XDR_SKIPBYTES 3
-#define XDR_RDMAGET 4
-#define XDR_RDMASET 5
-
-/* FIXME: probably doesn't work */
static __inline bool_t
xdrmem_control(XDR *xdrs, int request, void *info)
{
xdr_bytesrec *xptr;
- int32_t *int32p;
- int len;
switch (request) {
-
case XDR_GET_BYTES_AVAIL:
xptr = (xdr_bytesrec *)info;
xptr->xc_is_last_record = TRUE;
xptr->xc_num_avail = xdrs->x_handy;
return (TRUE);
-
- case XDR_PEEK:
- /*
- * Return the next 4 byte unit in the XDR stream.
- */
- if (xdrs->x_handy < sizeof (int32_t))
- return (FALSE);
- int32p = (int32_t *)info;
- *int32p = (int32_t)ntohl((uint32_t)
- (*((int32_t *)(xdrs->x_private))));
- return (TRUE);
-
- case XDR_SKIPBYTES:
- /*
- * Skip the next N bytes in the XDR stream.
- */
- int32p = (int32_t *)info;
- len = RNDUP((int)(*int32p));
- if ((xdrs->x_handy -= len) < 0)
- return (FALSE);
- xdrs->x_private += len;
- return (TRUE);
-
+ default:
+ assert(!"unexpected request");
}
return (FALSE);
}
+
+#undef XDR_CONTROL
+#define XDR_CONTROL(xdrs, req, op) \
+ (((xdrs)->x_ops->x_control == NULL) ? \
+ xdrmem_control((xdrs), (req), (op)) : \
+ (*(xdrs)->x_ops->x_control)(xdrs, req, op))
+
#endif /* !_KERNEL */
#endif /* !_OPENSOLARIS_RPC_XDR_H_ */
More information about the p4-projects
mailing list