From owner-p4-projects@FreeBSD.ORG Sun May 27 17:31:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9AF9C16A474; Sun, 27 May 2007 17:31:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2B29016A469 for ; Sun, 27 May 2007 17:31:14 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F3D0C13C458 for ; Sun, 27 May 2007 17:31:13 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l4RHVDCt033054 for ; Sun, 27 May 2007 17:31:13 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l4RHVDhh033045 for perforce@freebsd.org; Sun, 27 May 2007 17:31:13 GMT (envelope-from mjacob@freebsd.org) Date: Sun, 27 May 2007 17:31:13 GMT Message-Id: <200705271731.l4RHVDhh033045@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 120460 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: Sun, 27 May 2007 17:31:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=120460 Change 120460 by mjacob@mjexp on 2007/05/27 17:31:10 Add an ioctl entry point in prepartion for lsiutil support. Affected files ... .. //depot/projects/mjexp/sys/dev/mpt/mpt.c#9 edit .. //depot/projects/mjexp/sys/dev/mpt/mpt_ioctl.h#1 add Differences ... ==== //depot/projects/mjexp/sys/dev/mpt/mpt.c#9 (text+ko) ==== @@ -108,10 +108,41 @@ #include #include +#include +#include #define MPT_MAX_TRYS 3 #define MPT_MAX_WAIT 300000 +static d_ioctl_t mptioctl; +#if __FreeBSD_version < 500000 +#define MPT_CDEV_MAJOR 249 +static struct cdevsw mpt_cdevsw = { + /* open */ nullopen, + /* close */ nullclose, + /* read */ noread, + /* write */ nowrite, + /* ioctl */ mptioctl, + /* poll */ nopoll, + /* mmap */ nommap, + /* strategy */ nostrategy, + /* name */ "mpt", + /* maj */ MPT_CDEV_MAJOR, + /* dump */ nodump, + /* psize */ nopsize, + /* flags */ D_TAPE, +}; +#else +static struct cdevsw mpt_cdevsw = { + .d_version = D_VERSION, +#if __FreeBSD_version < 700037 + .d_flags = D_NEEDGIANT, +#endif + .d_ioctl = mptioctl, + .d_name = "mpt", +}; +#endif + static int maxwait_ack = 0; static int maxwait_int = 0; static int maxwait_state = 0; @@ -2099,6 +2130,7 @@ mpt_config_reply_handler; mpt_reply_handlers[MPT_CBI(MPT_REPLY_HANDLER_HANDSHAKE)] = mpt_handshake_reply_handler; + (void) make_dev(&mpt_cdevsw, 0, UID_ROOT, GID_OPERATOR, 0600, "mptctl"); return (0); } @@ -2140,7 +2172,6 @@ MPT_LOCK(mpt); error = mpt_configure_ioc(mpt, 0, 0); MPT_UNLOCK(mpt); - return (error); } @@ -2624,6 +2655,40 @@ } /* + * IOCTL support + */ + +#if __FreeBSD_version < 500000 +#define _DEV dev_t +#define _IOP struct proc +#else +#define _IOP struct thread +#define _DEV struct cdev * +#endif + +static int +mptioctl(_DEV dev, u_long c, caddr_t addr, int flags, _IOP *td) +{ + struct mpt_softc *mpt; + int retval = ENOTTY; + + TAILQ_FOREACH(mpt, &mpt_tailq, links) { + if (minor(dev) == device_get_unit(mpt->dev)) { + break; + } + } + if (mpt == NULL) { + return (ENXIO); + } + + switch (c) { + default: + break; + } + return (retval); +} + +/* * Endian Conversion Functions- only used on Big Endian machines */ #if _BYTE_ORDER == _BIG_ENDIAN