static void cmterminate(void) { int err; if ((err = unregister_strmod(modid, &ch_fmod)) < 0) strlog(modid, 0, 15, SL_ERROR | SL_NOPUTBUF, "unregister_strmod() failed %d", -err); return; }
static __exit void zapexit(void) { int err; if ((err = unregister_strdev(&zap_cdev, major)) < 0) strlog(modid, 0, 0, SL_CONSOLE | SL_FATAL, "could not unregsiter STREAMS device, err = %d", err); return; }
static __init int zapinit(void) { int err; if ((err = register_strdev(&zap_cdev, major)) < 0) { strlog(modid, 0, 0, SL_CONSOLE | SL_FATAL, "could not regsiter STREAMS device, err = %d", err); return (err); } if (major == 0) major = err; return (0); }
int __init dl_init(void) { int err; cmn_err(CE_NOTE, DRV_BANNER); if ((err = dl_init_caches())) return (err); if ((err = register_strdev(&dl_cdev, major)) < 0) { strlog(DRV_ID, 0, LOG_WARNING, SL_WARN | SL_CONSOLE, "could not register major %d", major); dl_term_caches(); return (err); } if (err > 0) major = err; return (0); }
static streamscall __unlikely int ch_qopen(queue_t *q, dev_t *devp, int oflags, int sflag, cred_t *crp) { struct ch *ch; int err; if (!SAMESTR(_WR(q))) { strlog(modid, 0, 15, SL_ERROR, "%s: can only push on pipe or fifo", MOD_NAME); return (ENXIO); /* can only be pushed on pipe or fifo */ } if ((err = mi_open_comm(&ch_head, sizeof(*ch), q, devp, oflags, sflag, crp))) return (err); ch = CH_PRIV(q); bzero(ch, sizeof(*ch)); ch->sid = atomic_add_return(&ch_numb, 1); /* FIXME initialize structure */ qprocson(q); return (0); }
/** * ssys_free_priv - deallocate a private structure for the close routine * @q: read queue of closing Stream */ STATIC noinline void ssys_free_priv(queue_t *q) { struct ssys *s; ensure(q, return); s = SOCKSYS_PRIV(q); ensure(q, return); #if 0 #if 0 strlog(DRV_ID, s->dev.cminor, 0, SL_TRACE, "unlinking private structure: reference count = %d", atomic_read(&s->refcnt)); #else printd(("%s: unlinking private structure, reference count = %d\n", DRV_NAME, atomic_read(&s->refcnt))); #endif #endif /* remove from master list */ if ((*s->prev = s->next)) s->next->prev = s->prev; s->next = NULL; }
/** * zap_r_proto: - process M_(PC)PROTO message on lower read queue * @q: the lower read queue * @mp: the M_(PC)PROTO message to process */ static fastcall zap_r_proto(queue_t *q, mblk_t *mp) { struct mx *mx = MX_PRIV(q); switch (*(mx_ulong *) mp->b_rptr) { case MX_INFO_ACK: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_INFO_ACK"); rtn = mx_info_ack(mx, q, mp); break; case MX_OPTMGMT_ACK: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_OPTMGMT_ACK"); rtn = mx_optmgmt_ack(mx, q, mp); break; case MX_OK_ACK: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_OK_ACK"); rtn = mx_ok_ack(mx, q, mp); break; case MX_ERROR_ACK: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_ERROR_ACK"); rtn = mx_error_ack(mx, q, mp); break; case MX_ENABLE_CON: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_ENABLE_CON"); rtn = mx_enable_con(mx, q, mp); break; case MX_CONNECT_CON: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_CONNECT_CON"); rtn = mx_connect_con(mx, q, mp); break; case MX_DATA_IND: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_DATA_IND"); rtn = mx_data_ind(mx, q, mp); break; case MX_DISCONNECT_IND: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_DISCONNECT_IND"); rtn = mx_disconnect_ind(mx, q, mp); break; case MX_DISCONNECT_CON: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_DISCONNECT_CON"); rtn = mx_disconnect_con(mx, q, mp); break; case MX_DISABLE_IND: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_DISABLE_IND"); rtn = mx_disable_ind(mx, q, mp); break; case MX_DISABLE_CON: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_DISABLE_CON"); rtn = mx_disable_con(mx, q, mp); break; case MX_EVENT_IND: strlog(mx->modid, mx->sid, 0, SL_TRACE, "<- MX_EVENT_IND"); rtn = mx_event_ind(mx, q, mp); break; } }