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).
ARGUMENTS
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
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 {
5if (datamsg(mp->b_datap->db_type)) {
6putq(q, mp);
7return;
8}
9switch (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.5/SPARC — Last change: 11 Apr 1991