X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/89b3af67bb32e691275bf6fa803d1834b2284115..13f56ec4e58bf8687e2a68032c093c0213dd519b:/bsd/netat/atp_alloc.c diff --git a/bsd/netat/atp_alloc.c b/bsd/netat/atp_alloc.c index 6ff87fe50..cf9a4375c 100644 --- a/bsd/netat/atp_alloc.c +++ b/bsd/netat/atp_alloc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -58,7 +58,8 @@ gbuf_t *atp_resource_m = 0; extern caddr_t atp_free_cluster_list; -extern void atp_delete_free_clusters(); +extern struct atp_rcb_qhead atp_need_rel; + struct atp_trans *atp_trans_alloc(atp) struct atp_state *atp; @@ -68,7 +69,8 @@ struct atp_state *atp; register struct atp_trans *trp, *trp_array; if (atp_trans_free_list == 0) { - if ((m = gbuf_alloc(TRPS_PER_BLK*sizeof(struct atp_trans),PRI_HI)) == 0) + if ((m = gbuf_alloc_wait(TRPS_PER_BLK*sizeof(struct atp_trans), + atp == NULL)) == 0) return (struct atp_trans *)0; bzero(gbuf_rptr(m), TRPS_PER_BLK*sizeof(struct atp_trans)); trp_array = (struct atp_trans *)gbuf_rptr(m); @@ -156,8 +158,6 @@ register struct atp_rcb *rcbp; rcbp->rc_queue = 0; if (rcbp->rc_timestamp) { - extern struct atp_rcb_qhead atp_need_rel; - rcbp->rc_timestamp = 0; ATP_Q_REMOVE(atp_need_rel, rcbp, rc_tlist); rcbp->rc_tlist.prev = NULL; @@ -171,7 +171,7 @@ register struct atp_rcb *rcbp; rcbp->rc_snd[i] = 0; } if (atp_free_cluster_list) - atp_delete_free_clusters(); + atp_delete_free_clusters(NULL); if (rc_state != RCB_UNQUEUED) { if (rc_state == RCB_PENDING) { ATP_Q_REMOVE(atp->atp_attached, rcbp, rc_list);