|
Kernel Functions for Drivers | datamsg(9F) |
| datamsg - test whether a message is a data message |
SYNOPSIS
|
#include <sys/stream.h>
#include <sys/ddi.h>
int datamsg(unsigned char type); |
|
Architecture independent level 1 (DDI/DKI).
|
|
-
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.
|
|
datamsg() tests the type of message to determine if it is a data message type (M_DATA, M_DELAY, M_PROTO , or M_PCPROTO).
|
|
datamsg returns
-
1
- if the message is a data message
-
0
- otherwise.
|
|
datamsg() can be called from user or interrupt context.
|
| Example 1. The put9E routine enqueues all
data messages for handling by the srv9E (service) routine.
All non-data messages are handled in the put9E 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 }
|
|
|
| |