QINIT(9S) Data Structures for Drivers QINIT(9S)

STREAMS queue processing procedures structure

#include <sys/stream.h>

Architecture independent level 1 (DDI/DKI)

The qinit structure contains pointers to processing procedures for a QUEUE. The streamtab structure for the module or driver contains pointers to one queue(9S) structure for both upstream and downstream processing.

The qinit structure includes the following members:

typedef int (*qi_putp_t)(queue_t *, mblk_t *);
typedef int (*qi_srvp_t)(queue_t *);
typedef int (*qi_qopen_t)(queue_t *, dev_t *, int, int, cred_t *);
typedef int (*qi_qclose_t)(queue_t *, int, cred_t *);
typedef int (*qi_qadmin_t)(void);
typedef int (*qi_rwp_t)(queue_t *, struiod_t *);
typedef int (*qi_infop_t)(queue_t *, infod_t *);

struct qinit {
    qi_putp_t       qi_putp;       /* put procedure */
    qi_srvp_t       qi_srvp;       /* service procedure */
    qi_qopen_t      qi_qopen;      /* called on startup */
    qi_qclose_t     qi_qclose;     /* called on finish */
    qi_qadmin_t     qi_qadmin;     /* for future use */
    struct module_info *qi_minfo;  /* module information */
    struct module_stat *qi_mstat;  /* module statistics */
    qi_rwp_t        qi_rwp;        /* r/w procedure */
    qi_infop_t      qi_infop;      /* information procedure */
    int             qi_struiot;    /* stream uio type for struio() */

queue(9S), streamtab(9S)

Writing Device Drivers

STREAMS Programming Guide

This release includes no support for module statistics.
October 17, 2018 OmniOS