• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/fs/fifofs/

Lines Matching refs:fip

113 	struct fifoinfo *fip;
116 fip = vp->v_fifoinfo;
117 if (fip->fi_readers == 0 && fip->fi_writers == 0) {
119 pipe_dtor(fip->fi_pipe);
120 free(fip, M_VNODE);
142 struct fifoinfo *fip;
153 if ((fip = vp->v_fifoinfo) == NULL) {
157 fip = malloc(sizeof(*fip), M_VNODE, M_WAITOK);
158 fip->fi_pipe = fpipe;
159 fpipe->pipe_wgen = fip->fi_readers = fip->fi_writers = 0;
161 vp->v_fifoinfo = fip;
163 fpipe = fip->fi_pipe;
173 fip->fi_readers++;
174 fip->fi_rgen++;
175 if (fip->fi_readers == 1) {
177 if (fip->fi_writers > 0) {
178 wakeup(&fip->fi_writers);
182 fp->f_pipegen = fpipe->pipe_wgen - fip->fi_writers;
185 if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) {
187 if (fip->fi_writers == 0)
191 fip->fi_writers++;
192 fip->fi_wgen++;
193 if (fip->fi_writers == 1) {
195 if (fip->fi_readers > 0) {
196 wakeup(&fip->fi_readers);
202 if ((ap->a_mode & FREAD) && fip->fi_writers == 0) {
203 gen = fip->fi_wgen;
206 error = msleep(&fip->fi_readers, PIPE_MTX(fpipe),
210 if (error != 0 && gen == fip->fi_wgen) {
211 fip->fi_readers--;
212 if (fip->fi_readers == 0) {
230 if ((ap->a_mode & FWRITE) && fip->fi_readers == 0) {
231 gen = fip->fi_rgen;
234 error = msleep(&fip->fi_writers, PIPE_MTX(fpipe),
238 if (error != 0 && gen == fip->fi_rgen) {
239 fip->fi_writers--;
240 if (fip->fi_writers == 0) {
281 struct fifoinfo *fip;
285 fip = vp->v_fifoinfo;
286 cpipe = fip->fi_pipe;
289 fip->fi_readers--;
290 if (fip->fi_readers == 0) {
302 fip->fi_writers--;
303 if (fip->fi_writers == 0) {
326 struct fifoinfo *fip = vp->v_fifoinfo;
328 if (fip == NULL){
333 fip->fi_readers, fip->fi_writers);