Lines Matching refs:fp

55  * Macros to declare and loop over a fp or fp/xfp combo to
59 #define FPDECL(fp) FILE *fp
60 #define FIRSTFP(lp, fp) fp = lp->iobp
61 #define NEXTFP(fp) fp++
62 #define FPLOCK(fp) &fp->_lock
63 #define FPSTATE(fp) &fp->_state
69 #define FPDECL(fp) FILE *fp; xFILE *x##fp
70 #define FIRSTFP(lp, fp) x##fp = lp->iobp; \
71 fp = x##fp ? &x##fp->_iob : &_iob[0]
72 #define NEXTFP(fp) (x##fp ? fp = &(++x##fp)->_iob : ++fp)
73 #define FPLOCK(fp) x##fp ? \
74 &x##fp->xlock : &_xftab[IOPIND(fp)]._lock
75 #define FPSTATE(fp) x##fp ? \
76 &x##fp->xstate : &_xftab[IOPIND(fp)]._state
89 #define FILEx(fp) ((struct xFILE *)(uintptr_t)fp)
179 FPDECL(fp);
190 FIRSTFP(lp, fp);
191 for (i = lp->niob; --i >= 0; NEXTFP(fp)) {
198 if ((fp->_flag & (_IOLBF | _IOWRT | _IONBF)) ==
201 rmutex_t *lk = FPLOCK(fp);
205 if ((fp->_flag & (_IOLBF | _IOWRT)) ==
207 (void) _fflush_u(fp);
211 (void) _fflush_u(fp);
248 FPDECL(fp);
264 * lock to make testing of fp->_flag == 0 and acquiring the fp atomic
267 * for finer granularity, use fp->_lock for allocating an iop
274 FIRSTFP(lp, fp);
276 for (i = lp->niob; --i >= 0; NEXTFP(fp)) {
279 ret = getiop(fp, FPLOCK(fp), FPSTATE(fp));
286 ret = getiop(fp, NULL, FPSTATE(fp));
295 * at __first_link, we rescan all fp's again. We do not rescan for
329 * safe to dereference ((xFILE*)fp)->xmagic.
361 fp = hdr->iobp;
363 (void) mutex_init(&fp[i]._lock,
367 fp = &xfp->_iob;
377 fp->_ptr = 0;
378 fp->_base = 0;
379 fp->_flag = 0377; /* claim the fp by setting low 8 bits */
383 return (fp);
800 getiop(FILE *fp, rmutex_t *lk, mbstate_t *mb)
803 return (NULL); /* locked: fp in use */
805 if (fp->_flag == 0) { /* unused */
807 fp->__orientation = 0;
809 fp->_cnt = 0;
810 fp->_ptr = NULL;
811 fp->_base = NULL;
812 fp->_flag = 0377; /* claim the fp by setting low 8 bits */
815 return (fp);