DATAMSG(9F)             Kernel Functions for Drivers             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
       The 
datamsg() function 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
       The 
datamsg() function can be called from user, interrupt, or kernel
       context.
EXAMPLES
       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                              February 17, 2023                  DATAMSG(9F)