| plan 9 kernel history: overview | file list | diff list |
1990/1126/port/devmnt.c (diff list | history)
| 1990/1126/sys/src/9/port/devmnt.c:669,683 – 1990/1127/sys/src/9/port/devmnt.c:669,684 (short | long | prev | next) | ||
| 1990/0227 | mntxmit(Mnt *m, Mnthdr *mh) { ulong n; | |
| 1990/1123 |
| |
| 1990/1127 | Mntbuf *mbw; | |
| 1990/0604 | Mnthdr *w, *ow; MntQ *q; | |
| 1990/1124 | int qlocked, tag, written; | |
| 1990/0227 | ||
| 1990/0619 |
| |
| 1990/1127 | mh->mbr = 0; | |
| 1990/0227 | mbw = mballoc(); | |
| 1990/1124 | if(waserror()){ /* 1 */ | |
| 1990/0619 |
| |
| 1990/1127 | if(mh->mbr) mbfree(mh->mbr); | |
| 1990/0227 | mbfree(mbw); nexterror(); } | |
| 1990/1126/sys/src/9/port/devmnt.c:706,711 – 1990/1127/sys/src/9/port/devmnt.c:707,713 | ||
| 1990/0227 | /* * Read response */ | |
| 1990/1127 | mh->mbr = mballoc(); | |
| 1990/0619 | n = (*devtab[q->msg->type].read)(q->msg, mh->mbr->buf, BUFSIZE); | |
| 1990/0604 | mqfree(q); | |
| 1990/1124 | poperror(); /* 2 */ | |
| 1990/1126/sys/src/9/port/devmnt.c:772,777 – 1990/1127/sys/src/9/port/devmnt.c:774,780 | ||
| 1990/1124 | mnterrdequeue(m, mh); | |
| 1990/0703 | nexterror(); } | |
| 1990/1127 | mh->mbr = mballoc(); | |
| 1990/0619 | n = (*devtab[q->msg->type].read)(q->msg, mh->mbr->buf, BUFSIZE); | |
| 1990/1124 | poperror(); /* 3 */ | |
| 1990/0619 | if(convM2S(mh->mbr->buf, &mh->rhdr, n) == 0){ | |
| 1990/1126/sys/src/9/port/devmnt.c:808,816 – 1990/1127/sys/src/9/port/devmnt.c:811,818 | ||
| 1990/1123 | w = &mnthdralloc.arena[tag]; | |
| 1990/1124 | if(w->flushing || !w->active) /* nothing to do; mntflush will clean up */ | |
| 1990/1123 | goto Read; | |
| 1990/1127 | w->mbr = mh->mbr; mh->mbr = 0; | |
| 1990/1123 | memcpy(&w->rhdr, &mh->rhdr, sizeof mh->rhdr); mntwunlink(q, w); w->readreply = 1; | |