Lines Matching refs:rcbp
121 register struct atp_rcb *rcbp;
123 if ((rcbp = atp_rcb_free_list) != NULL) {
124 atp_rcb_free_list = rcbp->rc_list.next;
125 rcbp->rc_queue = atp;
126 rcbp->rc_pktcnt = 0;
127 rcbp->rc_local_node = 0;
130 ("atp_rcb_alloc: allocated rcbp 0x%x\n", (u_int) rcbp));
131 return(rcbp);
139 void atp_rcb_free(rcbp)
140 register struct atp_rcb *rcbp;
147 ("atp_rcb_free: freeing rcbp 0x%x\n", (u_int) rcbp));
148 atp = rcbp->rc_queue;
149 if ((rc_state = rcbp->rc_state) == -1) {
152 0, rcbp->rc_tid,
153 rcbp->rc_socket.socket, atp->atp_socket_no));
156 rcbp->rc_state = -1;
157 rcbp->rc_xo = 0;
158 rcbp->rc_queue = 0;
160 if (rcbp->rc_timestamp) {
161 rcbp->rc_timestamp = 0;
162 ATP_Q_REMOVE(atp_need_rel, rcbp, rc_tlist);
163 rcbp->rc_tlist.prev = NULL;
164 rcbp->rc_tlist.next = NULL;
167 if (rcbp->rc_xmt) {
168 gbuf_freem(rcbp->rc_xmt); /* *** bad free is the second mbuf in this chain *** */
169 rcbp->rc_xmt = NULL;
170 for (i=0; i < rcbp->rc_pktcnt; i++)
171 rcbp->rc_snd[i] = 0;
177 ATP_Q_REMOVE(atp->atp_attached, rcbp, rc_list);
179 ATP_Q_REMOVE(atp->atp_rcb, rcbp, rc_list);
182 if (rcbp->rc_ioctl) {
183 gbuf_freem(rcbp->rc_ioctl);
184 rcbp->rc_ioctl = NULL;
186 rcbp->rc_list.next = atp_rcb_free_list;
187 atp_rcb_free_list = rcbp;