Home | History | Annotate | Download | only in fifofs

Lines Matching defs:fip

129 	struct fifoinfo	*fip;
136 if ((fip = vp->v_fifoinfo) == NULL) {
137 fip = kmem_alloc(sizeof(*fip), KM_SLEEP);
140 kmem_free(fip, sizeof(*fip));
143 fip->fi_readsock = rso;
147 kmem_free(fip, sizeof(*fip));
150 fip->fi_writesock = wso;
156 kmem_free(fip, sizeof(*fip));
176 fip->fi_readers = 0;
177 fip->fi_writers = 0;
180 cv_init(&fip->fi_rcv, "fiford");
181 cv_init(&fip->fi_wcv, "fifowr");
182 vp->v_fifoinfo = fip;
184 wso = fip->fi_writesock;
185 rso = fip->fi_readsock;
190 if (fip->fi_readers++ == 0) {
192 cv_broadcast(&fip->fi_wcv);
196 if (fip->fi_writers++ == 0) {
198 cv_broadcast(&fip->fi_rcv);
204 while (!soreadable(rso) && fip->fi_writers == 0) {
206 error = cv_wait_sig(&fip->fi_rcv,
218 if (fip->fi_readers == 0) {
224 while (fip->fi_readers == 0) {
226 error = cv_wait_sig(&fip->fi_wcv,
484 struct fifoinfo *fip;
489 fip = vp->v_fifoinfo;
491 wso = fip->fi_writesock;
492 rso = fip->fi_readsock;
495 if (fip->fi_readers != 0) {
496 fip->fi_readers = 0;
499 if (fip->fi_writers != 0) {
500 fip->fi_writers = 0;
504 if ((ap->a_fflag & FREAD) && --fip->fi_readers == 0)
506 if ((ap->a_fflag & FWRITE) && --fip->fi_writers == 0)
509 if ((fip->fi_readers + fip->fi_writers) == 0) {
513 cv_destroy(&fip->fi_rcv);
514 cv_destroy(&fip->fi_wcv);
515 kmem_free(fip, sizeof(*fip));
528 struct fifoinfo *fip;
530 fip = vp->v_fifoinfo;
532 fip->fi_readers, fip->fi_writers);