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)

tribblix@gmail.com :: GitHub :: Privacy