Lines Matching refs:atp

57 #include <netat/atp.h>
138 struct atp_state *atp;
143 atp = (struct atp_state *)gref->info;
144 if (atp->dflag)
145 atp = (struct atp_state *)atp->atp_msgq;
149 if (atp->atp_msgq) {
154 atp->atp_msgq = m;
170 atp_iocnak(atp, m, EINVAL);
175 atp_iocnak(atp, m, EINVAL);
179 atp_iocack(atp, m);
180 atp_dequeue_atp(atp);
187 atp_iocnak(atp, m, EINVAL);
191 atp_iocack(atp, m);
203 atp_iocnak(atp, m, ENOBUFS);
217 atp_iocnak(atp, m, EINVAL);
229 if (atp->atp_msgq) {
230 gbuf_cont(m2) = atp->atp_msgq;
231 atp->atp_msgq = 0;
237 for (rcbp = atp->atp_rcb.head; rcbp; rcbp = rcbp->rc_list.next) {
250 atp_iocnak(atp, m, ENOENT);
255 if ((rcbp = atp_rcb_alloc(atp)) == NULL) {
256 atp_iocnak(atp, m, ENOBUFS);
268 ATP_Q_APPEND(atp->atp_rcb, rcbp, rc_list);
271 if ((i = atp_unpack_bdsp(atp, m2, rcbp, xcnt, FALSE))) {
274 atp_iocnak(atp, m, i);
277 atp_send_replies(atp, rcbp);
282 atp_iocack(atp, m);
296 if ((rcbp = atp->atp_attached.head)) {
303 ATP_Q_REMOVE(atp->atp_attached, rcbp, rc_list);
305 ATP_Q_APPEND(atp->atp_rcb, rcbp, rc_list);
312 atp_iocack(atp, m);
317 atp_iocnak(atp, m, EAGAIN);
327 atp_iocnak(atp, m, EINVAL);
333 for (trp = atp->atp_trans_wait.head; trp; trp = trp->tr_list.next) {
338 atp_iocnak(atp, m, ENOENT);
341 atp_iocack(atp, m);
349 atp_iocnak(atp, m, EAGAIN);
352 atp_iocack(atp, m);
362 atp_iocnak(atp, m, EINVAL);
371 cfgp->inet.socket = atp->atp_socket_no;
374 cfgp->inet.net = atp->atp_gref->laddr.s_net;
375 cfgp->inet.node = atp->atp_gref->laddr.s_node;
376 cfgp->inet.socket = atp->atp_gref->lport;
377 cfgp->ddptype = atp->atp_gref->ddptype;
381 atp_iocack(atp, m);
436 void atp_send_replies(atp, rcbp)
437 register struct atp_state *atp;
449 at_socket src_socket = (at_socket)atp->atp_socket_no;
456 if (rcbp->rc_queue != atp)
527 i, atp->atp_socket_no, gbuf_msgsize(gbuf_cont(m2))));
554 if (rcbp->rc_queue != atp)
656 atp_unpack_bdsp(atp, m, rcbp, cnt, wait)
657 struct atp_state *atp;
658 gbuf_t *m; /* ddp, atp and bdsp gbuf_t */
690 if ((src_socket = (at_socket)atp->atp_socket_no) == 0xFF) {
735 0,atp->atp_socket_no,gbuf_msgsize(gbuf_cont(m2)),cnt));
741 * to contain the atp and ddp headers with room at the front for the
793 i,atp->atp_socket_no,gbuf_msgsize(gbuf_cont(mhdr)),cnt));
835 struct atp_state *atp;
837 atp = (struct atp_state *)gref->info;
838 if (atp->dflag)
839 atp = (struct atp_state *)atp->atp_msgq;
887 atp->atp_socket_no = (short)sVal;
890 atp_pidM[sVal] = atp->atp_pid;
900 void atp_req_ind(atp, mioc)
901 register struct atp_state *atp;
906 if ((rcbp = atp->atp_attached.head) != 0) {
910 ATP_Q_REMOVE(atp->atp_attached, rcbp, rc_list);
912 ATP_Q_APPEND(atp->atp_rcb, rcbp, rc_list);
919 asp_ack_reply(atp->atp_gref, mioc);
928 register struct atp_state *atp = trp->tr_queue;
955 atp_iocnak(atp, mioc, err);
958 atp_iocack(atp, mioc);
967 struct atp_state *atp;
970 atp = (struct atp_state *)gref->info;
971 if (atp->dflag)
972 atp = (struct atp_state *)atp->atp_msgq;
974 for (trp = atp->atp_trans_wait.head; trp; trp = trp->tr_list.next) {
983 * remove atp from the use list
986 atp_dequeue_atp(atp)
987 struct atp_state *atp;
990 if (atp == atp_used_list) {
991 if ((atp_used_list = atp->atp_trans_waiting) != 0)
992 atp->atp_trans_waiting->atp_rcb_waiting = 0;
993 } else if (atp->atp_rcb_waiting) {
994 if ((atp->atp_rcb_waiting->atp_trans_waiting
995 = atp->atp_trans_waiting) != 0)
996 atp->atp_trans_waiting->atp_rcb_waiting = atp->atp_rcb_waiting;
999 atp->atp_trans_waiting = 0;
1000 atp->atp_rcb_waiting = 0;
1114 register struct atp_state *atp;
1125 atp = (struct atp_state *)((struct atp_state *)gref->info)->atp_msgq;
1128 if ((trp = atp_trans_alloc(atp)) == NULL) {
1162 trp->tr_tid = atp_tid(atp);
1178 ddp->src_socket = (at_socket)atp->atp_socket_no;
1182 trp->tr_local_socket = atp->atp_socket_no;
1189 atp->atp_gref->laddr.s_net = NET_VALUE(ddp->src_net);
1190 atp->atp_gref->laddr.s_node = ddp->src_node;
1191 atp->atp_gref->lport = ddp->src_node;
1192 atp->atp_gref->ddptype = DDP_ATP;
1198 ATP_Q_APPEND(atp->atp_trans_wait, trp, tr_list);
1235 register struct atp_state *atp;
1242 atp = (struct atp_state *)gref->info;
1243 if (atp->dflag)
1244 atp = (struct atp_state *)atp->atp_msgq;
1251 for (rcbp = atp->atp_rcb.head; rcbp; rcbp = rcbp->rc_list.next) {
1269 if ((rcbp = atp_rcb_alloc(atp)) == NULL) {
1281 ATP_Q_APPEND(atp->atp_rcb, rcbp, rc_list);
1290 s = atp_unpack_bdsp(atp, m, rcbp, xcnt, wait);
1292 atp_send_replies(atp, rcbp);
1386 register struct atp_state *atp;
1398 if ((gref == 0) || ((atp = (struct atp_state *)gref->info) == 0)
1399 || (atp->atp_flags & ATP_CLOSING)) {
1421 rc = msleep(&atp->atp_delay_event, atalk_mutex, PSOCK | PCATCH, "atpmioc", &ts);
1437 rc = msleep(&atp->atp_delay_event, atalk_mutex, PSOCK | PCATCH, "atpm2", &ts);
1472 while ((trp = atp_trans_alloc(atp)) == 0) {
1478 rc = msleep(&atp->atp_delay_event, atalk_mutex, PSOCK | PCATCH, "atptrp", &ts);
1489 trp->tr_tid = atp_tid(atp);
1511 ddp->src_socket = (at_socket)atp->atp_socket_no;
1516 trp->tr_local_socket = atp->atp_socket_no;
1520 atp->atp_gref->laddr.s_net = NET_VALUE(ddp->src_net);
1521 atp->atp_gref->laddr.s_node = ddp->src_node;
1522 atp->atp_gref->lport = ddp->src_node;
1523 atp->atp_gref->ddptype = DDP_ATP;
1529 ATP_Q_APPEND(atp->atp_trans_wait, trp, tr_list);
1620 struct atp_state *atp;
1628 if ((gref == 0) || ((atp = (struct atp_state *)gref->info) == 0)
1629 || (atp->atp_flags & ATP_CLOSING)) {
1748 register struct atp_state *atp;
1756 if ((gref == 0) || ((atp = (struct atp_state *)gref->info) == 0)
1757 || (atp->atp_flags & ATP_CLOSING)) {
1771 if ((rcbp = atp->atp_attached.head) != NULL) {
1779 ATP_Q_REMOVE(atp->atp_attached, rcbp, rc_list);
1781 ATP_Q_APPEND(atp->atp_rcb, rcbp, rc_list);
1818 register struct atp_state *atp;
1826 if ((gref == 0) || ((atp = (struct atp_state *)gref->info) == 0)
1827 || (atp->atp_flags & ATP_CLOSING)) {
1835 for (trp = atp->atp_trans_wait.head; trp; trp = trp->tr_list.next) {
1837 ("ATPgetrsp: atp:0x%x, trp:0x%x, state:%d\n",
1838 (u_int) atp, (u_int) trp, trp->tr_state));
1886 struct atp_state *atp;
1891 atp = (struct atp_state *)gref->info;
1892 if (atp->dflag)
1893 atp = (struct atp_state *)atp->atp_msgq;
1900 for (rcbp = atp->atp_rcb.head; rcbp; rcbp = rcbp->rc_list.next) {