[comp.unix.ultrix] struct cdevsw in ULTRIX-32

tamura@versatc.versatec.COM (Mark Tamura) (07/06/90)

question: why does the ULTRIX-32 (VAX) V3.1 cdevsw struct have eleven entries
per device while the generic Berkeley 4.3 have only ten?  and when did this
extra entry appear and what is its purpose?

compare the /usr/src/sys/vax/conf.c on a Berkeley 4.3 system with the
/usr/sys/vax/conf.c on an ULTRIX-32 (VAX) V3.1 system.  i called the digital
technical support people but they had no answer other than hinting that it
might be some future hook for V4.0.  thanks.

Mark Tamura
--
Versatec, A Xerox Company     ARPA: Mark_S_Tamura.SCB1Versatec@Xerox.COM
2710 Walsh Avenue, MS 1-7     UUCP: {ames,pyramid,sun}!versatc!tamura
P.O. Box 58091                AT&T: (408)988-2800 x5202
Santa Clara, CA 95052-8091

thomas@mipsbx.nac.dec.com (Matt Thomas) (07/06/90)

> question: why does the ULTRIX-32 (VAX) V3.1 cdevsw struct have eleven entries

> per device while the generic Berkeley 4.3 have only ten?  and when did this
> extra entry appear and what is its purpose?

struct cdevsw
{
        int     (*d_open)();
        int     (*d_close)();
        int     (*d_read)();
        int     (*d_write)();
        int     (*d_ioctl)();
        int     (*d_stop)();
        int     (*d_reset)();
        struct tty *d_ttys;
        int     (*d_select)();
        int     (*d_mmap)();
        int     (*d_strat)();	/* Not in BSD 4.3 */
        int     d_affinity;	/* New for ULTRIX V4.0 (SMP support) */
};

And from /sys/machine/common/conf.c (V4.0):
 * 11-Mar-86 -- lp
 *      Add strat to entire cdevsw for n-buffered I/O.

-- 
Matt Thomas                     Internet:   thomas@wrl.dec.com
DECnet-ULTRIX Development       UUCP:       ...!decwrl!thomas
Digital Equipment Corporation   Disclaimer: This message reflects my own
Littleton, MA                               warped views, etc.

grr@cbmvax.commodore.com (George Robbins) (07/06/90)

In article <20851@versatc.versatec.COM> tamura@versatc.versatec.COM (Mark Tamura) writes:
> question: why does the ULTRIX-32 (VAX) V3.1 cdevsw struct have eleven entries
> per device while the generic Berkeley 4.3 have only ten?  and when did this
> extra entry appear and what is its purpose?

From /sys/h/conf.h:

 *	11-Mar-86	Larry Palmer -- lp
 * 	Added strategy routine to cdevsw for n-buffered I/O. If
 *	the strategy routine is non-null this implies device can do
 *	multiple bufferring.

It is moderatly important to keep in mind that Ultrix is *not* 4.3BSD, rather
it 4.2BSD with a lot of Ultrixism's, many of which bear passing resemblance to
those in 4.3BSD or SunOS (NFS et.al.).  Some other sets of changes you may
notice in the driver area are ioctls for returning "generic device info" and
various tag/label fields for use in system error reporting.

-- 
George Robbins - now working for,     uucp:   {uunet|pyramid|rutgers}!cbmvax!grr
but no way officially representing:   domain: grr@cbmvax.commodore.com
Commodore, Engineering Department     phone:  215-431-9349 (only by moonlite)