datamsg(9F)




NAME

     datamsg - test whether a message is a data message


SYNOPSIS

     #include <sys/stream.h>
     #include <sys/ddi.h>

     int datamsg(unsigned char type);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

     type  The type of message to be tested.  The  db_type  field
           of the  datab(9S) structure contains the message type.
           This field may be accessed through the  message  block
           using mp->b_datap->db_type.


DESCRIPTION

     datamsg() tests the type of message to determine  if it is a
     data   message   type    (M_DATA,   M_DELAY,  M_PROTO  ,  or
     M_PCPROTO).


RETURN VALUES

     datamsg returns

     1     if the message is a data message

     0     otherwise.


CONTEXT

     datamsg() can be called from user or interrupt context.


EXAMPLES

     Example 1: The  put(9E) routine enqueues all  data  messages
     for handling by the  srv(9E) (service) routine. All non-data
     messages are handled in the  put(9E) routine.

      1 xxxput(q, mp)
      2      queue_t *q;
      3      mblk_t *mp;
      4 {
      5    if (datamsg(mp->b_datap->db_type)) {
      6            putq(q, mp);
      7            return;
      8    }
      9    switch (mp->b_datap->db_type) {
     10    case M_FLUSH:
                      ...
     11    }
     12 }


SEE ALSO

     put(9E), srv(9E), allocb(9F), datab(9S), msgb(9S)

     Writing Device Drivers

     STREAMS Programming Guide


Man(1) output converted with man2html