User Tools

Site Tools


solaris:datamsg.9f

datamsg


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 in Oracle Solaris 11.4

STREAMS Programming Guide


solaris/datamsg.9f.txt · Last modified: 2023/07/19 08:57 by A User Not Logged in