Lines Matching refs:fmp

67 	fmemopen_t *fmp = _xdata(iop);  in fmemopen_read()  local
69 nbytes = MIN(nbytes, fmp->fmo_lsize - fmp->fmo_pos); in fmemopen_read()
74 (void) memcpy(buf, fmp->fmo_buf, nbytes); in fmemopen_read()
75 fmp->fmo_pos += nbytes; in fmemopen_read()
84 fmemopen_t *fmp = _xdata(iop); in fmemopen_write() local
86 if ((fmp->fmo_flags & FMO_F_APPEND) != 0) { in fmemopen_write()
92 fmp->fmo_pos = fmp->fmo_lsize; in fmemopen_write()
102 npos = fmp->fmo_pos + nbytes; in fmemopen_write()
106 } else if (npos > fmp->fmo_alloc) { in fmemopen_write()
107 nbytes = fmp->fmo_alloc - fmp->fmo_pos; in fmemopen_write()
110 (void) memcpy(&fmp->fmo_buf[fmp->fmo_pos], buf, nbytes); in fmemopen_write()
111 fmp->fmo_pos += nbytes; in fmemopen_write()
113 if (fmp->fmo_pos > fmp->fmo_lsize) { in fmemopen_write()
114 fmp->fmo_lsize = fmp->fmo_pos; in fmemopen_write()
123 if (fmp->fmo_lsize < fmp->fmo_alloc) { in fmemopen_write()
124 fmp->fmo_buf[fmp->fmo_lsize] = '\0'; in fmemopen_write()
125 } else if ((fmp->fmo_flags & FMO_F_APPEND) == 0) { in fmemopen_write()
126 fmp->fmo_buf[fmp->fmo_alloc - 1] = '\0'; in fmemopen_write()
136 fmemopen_t *fmp = _xdata(iop); in fmemopen_seek() local
144 base = fmp->fmo_pos; in fmemopen_seek()
147 base = fmp->fmo_lsize; in fmemopen_seek()
154 if (!memstream_seek(base, off, fmp->fmo_alloc, &npos)) { in fmemopen_seek()
158 fmp->fmo_pos = npos; in fmemopen_seek()
160 return ((off_t)fmp->fmo_pos); in fmemopen_seek()
164 fmemopen_free(fmemopen_t *fmp) in fmemopen_free() argument
166 if (fmp->fmo_buf != NULL && in fmemopen_free()
167 (fmp->fmo_flags & FMO_F_USER_BUFFER) == 0) { in fmemopen_free()
168 free(fmp->fmo_buf); in fmemopen_free()
171 free(fmp); in fmemopen_free()
177 fmemopen_t *fmp = _xdata(iop); in fmemopen_close() local
178 fmemopen_free(fmp); in fmemopen_close()
188 fmemopen_t *fmp; in fmemopen() local
210 if ((fmp = calloc(1, sizeof (fmemopen_t))) == NULL) { in fmemopen()
216 fmp->fmo_buf = calloc(size, sizeof (uint8_t)); in fmemopen()
217 if (fmp->fmo_buf == NULL) { in fmemopen()
222 fmp->fmo_buf = buf; in fmemopen()
223 fmp->fmo_flags |= FMO_F_USER_BUFFER; in fmemopen()
226 fmp->fmo_alloc = size; in fmemopen()
234 fmp->fmo_pos = strnlen(fmp->fmo_buf, fmp->fmo_alloc); in fmemopen()
235 fmp->fmo_lsize = fmp->fmo_pos; in fmemopen()
236 fmp->fmo_flags |= FMO_F_APPEND; in fmemopen()
238 fmp->fmo_buf[0] = '\0'; in fmemopen()
239 fmp->fmo_pos = 0; in fmemopen()
240 fmp->fmo_lsize = 0; in fmemopen()
242 fmp->fmo_pos = 0; in fmemopen()
243 fmp->fmo_lsize = size; in fmemopen()
257 fmemopen_close, fmp) != 0) { in fmemopen()
267 fmemopen_free(fmp); in fmemopen()