Sun Microsystems Logo
Products and Services
 
Support and Training
 
 

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  
 
Kernel Functions for Driversdatamsg(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



SunOS 5.9Go To TopLast Changed 11 Apr 1991