Lines Matching refs:ms

63 memstream_grow(struct memstream *ms, off_t newoff)  in memstream_grow()  argument
69 if (newsize > ms->len) { in memstream_grow()
70 buf = realloc(*ms->bufp, newsize + 1); in memstream_grow()
74 ms, ms->len, newsize); in memstream_grow()
76 memset(buf + ms->len + 1, 0, newsize - ms->len); in memstream_grow()
77 *ms->bufp = buf; in memstream_grow()
78 ms->len = newsize; in memstream_grow()
87 memstream_update(struct memstream *ms) in memstream_update() argument
90 *ms->sizep = ms->len < ms->offset ? ms->len : ms->offset; in memstream_update()
96 struct memstream *ms; in memstream_write() local
100 ms = cookie; in memstream_write()
101 more = ms->offset; in memstream_write()
103 if (!memstream_grow(ms, more)) in memstream_write()
105 tocopy = ms->len - ms->offset; in memstream_write()
108 memcpy(*ms->bufp + ms->offset, buf, tocopy); in memstream_write()
109 ms->offset += tocopy; in memstream_write()
110 memstream_update(ms); in memstream_write()
112 fprintf(stderr, "MS: write(%p, %zu) = %zu\n", ms, len, tocopy); in memstream_write()
120 struct memstream *ms; in memstream_seek() local
125 ms = cookie; in memstream_seek()
127 old = ms->offset; in memstream_seek()
133 ms->offset = off_t_to_size_t(pos); in memstream_seek()
141 if (pos + (ssize_t)ms->len < 0) { in memstream_seek()
145 (intmax_t)pos, ms->len); in memstream_seek()
151 if (OFF_MAX - (ssize_t)ms->len < pos) { in memstream_seek()
155 (intmax_t)pos, ms->len); in memstream_seek()
161 ms->offset = off_t_to_size_t(ms->len + pos); in memstream_seek()
164 memstream_update(ms); in memstream_seek()
166 fprintf(stderr, "MS: seek(%p, %jd, %d) %zu -> %zu\n", ms, in memstream_seek()
167 (intmax_t)pos, whence, old, ms->offset); in memstream_seek()
169 return (ms->offset); in memstream_seek()
183 struct memstream *ms; in open_memstream() local
194 ms = malloc(sizeof(*ms)); in open_memstream()
195 if (ms == NULL) { in open_memstream()
202 ms->bufp = bufp; in open_memstream()
203 ms->sizep = sizep; in open_memstream()
204 ms->len = 0; in open_memstream()
205 ms->offset = 0; in open_memstream()
206 memstream_update(ms); in open_memstream()
207 fp = funopen2(ms, NULL, memstream_write, memstream_seek, in open_memstream()
211 free(ms); in open_memstream()