Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ bcb(D4) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought






       bcb(D4)                                                      bcb(D4)


       NAME
             bcb - breakup control block structure

       SYNOPSIS
             #include <sys/types.h>
             #include <sys/buf.h>
             #include <sys/ddi.h>

       DESCRIPTION
             The bcb structure is passed to buf_breakup(D3) to indicate
             desired breakup properties.

       USAGE
             The bcb structure is allocated by the bcb_alloc(D3) routine,
             and freed with the bcb_free(D3) routine.

          Structure Definitions
             The bcb structure is defined as type bcb_t and contains the
             following members:
             uchar_t   bcb_addrtypes;     /* type(s) of addresses accepted */
             uchar_t   bcb_flags;         /* misc flags */
             size_t    bcb_max_xfer;      /* maximum transfer length; total */
                                          /* xfer if not BA_SCGTH, else per */
                                          /* ba_scgth_t entry */
             size_t    bcb_granularity;   /* minimum acceptable offset/size */
                                          /* unit (sector size, for disks) */
             physreq_t *bcb_physreqp;     /* physical alignment requirements */

             bcb_addrtypes specifies the types of addresses  accepted.   It
             should  be the sum of one or more address types, as listed for
             b_addrtype in buf(D4), and must  include  either  BA_KVIRT  or
             BA_PHYS, but not both.  BA_UVIRT may not be used with BA_PHYS.
             BA_SCGTH may not be used with BA_KVIRT.

             bcb_flags include the following:

                   BCB_ONE_PIECE
                         Whole job must be done in one piece; fail  if  not
                         possible.

                   BCB_EXACT_SIZE
                         Fail jobs with unaligned offsets or sizes.

                   BCB_SYNCHRONOUS
                         Do not send multiple simultaneous jobs; also  fail
                         any B_ASYNC jobs.


                           Copyright 1994 Novell, Inc.               Page 1













      bcb(D4)                                                      bcb(D4)


            The following bcb_flag is now at level 2 support commitment

                  BCB_PHYSCONTIG
                        Requires physically  contiguous  buffers  (if  not
                        BA_SCGTH).

            Drivers should use the PREQ_PHYSCONTIG flag in the bcb_physreq
            in preference to BCB_PHYSCONTIG.

            bcb_max_xfer is the maximum transfer length of each piece; for
            BA_SCGTH, this is the maximum length of each ba_scgth_t entry.
            bcb_max_xfer may be zero,  meaning  unlimited;  otherwise,  it
            must be a multiple of bcb_granularity.

            bcb_granularity defines the minimum acceptable offset or  size
            of  a  transfer.   In  disks, for example, this corresponds to
            sector size.  bcb_granularity does not need to be a  power  of
            2, but it must not be zero.

            bcb_physreqp is a pointer to  a  physreq(D4)  structure  which
            defines the physical alignment requirements.

      REFERENCES
            bcb_alloc(D3), bcb_free(D3), buf_breakup(D3), physreq(D4)

      NOTICES
         Portability
            All processors

         Future Directions
            BCB_PHYSCONTIG is obsolete as of December 31, 1994, and will
            eventually be removed.
















                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026