|
|
|
1991/1116/sys/src/9/port/devdk.c:110,115 –
1991/1120/sys/src/9/port/devdk.c:110,116
(short | long | prev | next)
|
|
1991/1116
| |
Chan *csc;
|
|
1990/1101
| |
Lock;
|
|
1991/1120
| |
int ref;
|
|
1990/1101
| |
int opened;
|
|
1991/1116
| |
|
|
1990/1018
| |
char name[64]; /* dk name */
|
|
1991/1116/sys/src/9/port/devdk.c:240,246 –
1991/1120/sys/src/9/port/devdk.c:241,247
|
|
1990/1101
| |
unlock(&dklock);
return dp;
|
|
1990/0312
| |
}
|
|
1990/1101
| |
if(dp->name[0] == 0)
|
|
1991/1120
| |
if(dp->name[0] == 0 && dp->ref == 0)
|
|
1990/1101
| |
freep = dp;
|
|
1990/0312
| |
}
|
|
1990/1101
| |
if(freep == 0){
|
|
1991/1116/sys/src/9/port/devdk.c:334,339 –
1991/1120/sys/src/9/port/devdk.c:335,341
|
|
1990/1101
| |
dp = WR(q)->ptr;
if(dp == 0)
return;
|
|
1991/1120
| |
dp->name[0] = 0;
|
|
1990/1101
| |
/*
* disallow new dkstopens() on this line.
|
|
1991/1116/sys/src/9/port/devdk.c:454,459 –
1991/1120/sys/src/9/port/devdk.c:456,462
|
|
1991/1107
| |
q->other->ptr = q->ptr = lp = dp->linep[s->id];
|
|
1990/0312
| |
lp->dp = dp;
|
|
1990/1101
| |
lock(dp);
|
|
1991/1120
| |
dp->ref++;
|
|
1990/1101
| |
if(dp->opened==0 || streamenter(dp->s)<0){
unlock(dp);
|
|
1990/11211
| |
error(Ehungup);
|
|
1991/1116/sys/src/9/port/devdk.c:545,550 –
1991/1120/sys/src/9/port/devdk.c:548,559
|
|
1991/1116
| |
if(lp->lineno == dp->ncsc)
dp->csc = 0;
netdisown(&dp->net, lp->lineno);
|
|
1991/1120
| |
lock(dp);
dp->ref--;
if(dp->ref == 0)
freeb(dp->alloc);
unlock(dp);
|
|
1990/0312
| |
}
/*
|
|
1991/1116/sys/src/9/port/devdk.c:1625,1631 –
1991/1120/sys/src/9/port/devdk.c:1634,1639
|
|
1990/1101
| |
}
if(c)
close(c);
|
|
1991/1107
| |
freeb(dp->alloc);
|
|
1990/1101
| |
return;
}
|