Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

put(9E)

srv(9E)

allocb(9F)

datab(9S)

msgb(9S)

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/x86  —  Last change: 11 Apr 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026