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)*/ };