The qinit(9S) structure (also shown in Appendix A) contains pointers to the STREAMS entry points. These routines are called by the module-loading code in the kernel.
struct qinit {
int (*qi_putp)(); /* put procedure */
int (*qi_srvp)(); /* service procedure */
int (*qi_qopen)(); /* called on each open or push*/
int (*qi_qclose)(); /* called on last close or pop*/
int (*qi_qadmin)(); /* reserved for future use */
struct module_info *qi_minfo; /* info struct */
struct module_stat *qi_mstat; /* stats struct (opt)*/
};