int atp_inited = 0;
struct atp_rcb_qhead atp_need_rel;
-atlock_t atpall_lock;
-atlock_t atptmo_lock;
-atlock_t atpgen_lock;
/**********/
int atp_pidM[256];
int flag;
{
register struct atp_state *atp;
- register int s, i;
+ register int i;
vm_offset_t temp;
/*
* If no atp structure available return failure
*/
- ATDISABLE(s, atpall_lock);
- if ((atp = atp_free_list) == NULL) {
- ATENABLE(s, atpall_lock);
+ if ((atp = atp_free_list) == NULL)
return(EAGAIN);
- }
/*
* Update free list
*/
atp_free_list = atp->atp_trans_waiting;
- ATENABLE(s, atpall_lock);
/*
* Initialize the data structure
atp->atp_socket_no = -1;
atp->atp_pid = gref->pid;
atp->atp_msgq = 0;
- ATLOCKINIT(atp->atp_lock);
- ATLOCKINIT(atp->atp_delay_lock);
ATEVENTINIT(atp->atp_event);
ATEVENTINIT(atp->atp_delay_event);
gref->info = (void *)atp;
*/
if (flag) {
- ATDISABLE(s, atpall_lock);
if ((atp->atp_trans_waiting = atp_used_list) != 0)
atp->atp_trans_waiting->atp_rcb_waiting = atp;
atp_used_list = atp;
- ATENABLE(s, atpall_lock);
}
return(0);
}
register struct atp_state *atp;
register struct atp_trans *trp;
register struct atp_rcb *rcbp;
- register int s;
int socket;
pid_t pid;
atp->atp_msgq = 0;
}
- ATDISABLE(s, atp->atp_lock);
atp->atp_flags |= ATP_CLOSING;
socket = atp->atp_socket_no;
if (socket != -1)
atp_rcb_free(rcbp);
while ((rcbp = atp->atp_attached.head))
atp_rcb_free(rcbp);
- ATENABLE(s, atp->atp_lock);
if (flag && (socket == -1))
atp_dequeue_atp(atp);
/*
* free the state variable
*/
- ATDISABLE(s, atpall_lock);
atp->atp_socket_no = -1;
atp->atp_trans_waiting = atp_free_list;
atp_free_list = atp;
- ATENABLE(s, atpall_lock);
if (socket != -1) {
pid = (pid_t)atp_pidM[socket];