makecom(9F)




NAME

     makecom, makecom_g0, makecom_g0_s, makecom_g1, makecom_g5  -
     make a packet for SCSI commands


SYNOPSIS

     #include <sys/scsi/scsi.h>

     void makecom_g0(struct  scsi_pkt  *pkt,  struct  scsi_device
     *devp, int flag, int cmd, int addr, int cnt);

     void makecom_g0_s(struct scsi_pkt *pkt,  struct  scsi_device
     *devp, int flag, int cmd, int cnt, int fixbit);

     void makecom_g1(struct  scsi_pkt  *pkt,  struct  scsi_device
     *devp, int flag, int cmd, int addr, int cnt);

     void makecom_g5(struct  scsi_pkt  *pkt,  struct  scsi_device
     *devp, int flag, int cmd, int addr, int cnt);


INTERFACE LEVEL

     These interfaces are obsolete. scsi_setup_cdb(9F) should  be
     used instead.


PARAMETERS

     pkt   Pointer to an allocated scsi_pkt(9S) structure.

     devp  Pointer to the target's scsi_device(9S) structure.

     flag  Flags for the pkt_flags member.

     cmd   First byte of a group 0 or 1 or 5 SCSI CDB.

     addr  Pointer to the location of the data.

     cnt   Data transfer length in units defined by the SCSI dev-
           ice  type. For sequential devices cnt is the number of
           bytes. For block devices, cnt is the number of blocks.

     fixbit
           Fixed bit in sequential access device commands.


DESCRIPTION

     makecom functions initialize a  packet  with  the  specified
     command  descriptor  block,  devp  and  transport flags. The
     pkt_address, pkt_flags, and  the  command  descriptor  block
     pointed  to  by pkt_cdbp are initialized using the remaining
     arguments. Target drivers may use makecom_g0() for  Group  0
     commands   (except   for   sequential  access  devices),  or
     makecom_g0_s() for Group 0 commands  for  sequential  access
     devices,   or   makecom_g1()   for  Group  1  commands,   or
     makecom_g5() for Group 5 commands. fixbit is used by sequen-
     tial access devices for accessing fixed block sizes and sets
     the the tag portion of the SCSI CDB.


CONTEXT

     These functions can be called from user  or  interrupt  con-
     text.


EXAMPLES

     Example 1: Using makecom Functions

     if (blkno >= (1<<20)) {
           makecom_g1(pkt, SD_SCSI_DEVP, pflag, SCMD_WRITE_G1,
              (int) blkno, nblk);
     } else {
           makecom_g0(pkt, SD_SCSI_DEVP, pflag, SCMD_WRITE,
              (int) blkno, nblk);
     }


ATTRIBUTES

     See attributes(5) for a description of the following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Stability Level             | Obsolete                    |
    |_____________________________|_____________________________|


SEE ALSO

     attributes(5),     scsi_setup_cdb(9F),      scsi_device(9S),
     scsi_pkt(9S)

     ANSI Small Computer System Interface-2 (SCSI-2)

     Writing Device Drivers


NOTES

     The   makecom_g0(),   makecom_g0_s(),   makecom_g1(),    and
     makecom_g5() functions are obsolete and will be discontinued
     in a future release. These functions have been  replaced  by
     the scsi_setup_cdb() function.  See scsi_setup_cdb(9F).


Man(1) output converted with man2html