man Pages(9F): DDI and DKI Kernel Functions
  Procure somente este livro
Fazer download desta apostila em PDF

NAME

datamsg - test whether a message is a data message

SYNOPSIS

#include <sys/stream.h>
#include <sys/ddi.h>

int datamsg(unsigned char type);

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.

INTERFACE LEVEL

Architecture independent level 1 (DDI/DKI).

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; and 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 {
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 Programmer's Guide