Lines Matching refs:handle

49 static size_t zend_stream_stdio_reader(void *handle, char *buf, size_t len) /* {{{ */  in zend_stream_stdio_reader()  argument
51 return fread(buf, 1, len, (FILE*)handle); in zend_stream_stdio_reader()
54 static void zend_stream_stdio_closer(void *handle) /* {{{ */ in zend_stream_stdio_closer() argument
56 if (handle && (FILE*)handle != stdin) { in zend_stream_stdio_closer()
57 fclose((FILE*)handle); in zend_stream_stdio_closer()
61 static size_t zend_stream_stdio_fsizer(void *handle) /* {{{ */ in zend_stream_stdio_fsizer() argument
64 if (handle && zend_fstat(fileno((FILE*)handle), &buf) == 0) { in zend_stream_stdio_fsizer()
88 stream->handle = stream->mmap.old_handle; in zend_stream_unmap()
94 if (stream->mmap.old_closer && stream->handle) { in zend_stream_mmap_closer()
95 stream->mmap.old_closer(stream->handle); in zend_stream_mmap_closer()
108 return file_handle->handle.stream.mmap.len; in zend_stream_fsize()
111 return file_handle->handle.stream.fsizer(file_handle->handle.stream.handle); in zend_stream_fsize()
113 if (file_handle->handle.fp && zend_fstat(fileno(file_handle->handle.fp), &buf) == 0) { in zend_stream_fsize()
125 ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle) /* {{{ */ in zend_stream_open() argument
128 return zend_stream_open_function(filename, handle); in zend_stream_open()
130 handle->type = ZEND_HANDLE_FP; in zend_stream_open()
131 handle->opened_path = NULL; in zend_stream_open()
132 handle->handle.fp = zend_fopen(filename, &handle->opened_path); in zend_stream_open()
133 handle->filename = filename; in zend_stream_open()
134 handle->free_filename = 0; in zend_stream_open()
135 memset(&handle->handle.stream.mmap, 0, sizeof(zend_mmap)); in zend_stream_open()
137 return (handle->handle.fp) ? SUCCESS : FAILURE; in zend_stream_open()
144 if (file_handle->handle.stream.reader(file_handle->handle.stream.handle, &buf, sizeof(buf))) { in zend_stream_getc()
152 if (!zend_stream_is_mmap(file_handle) && file_handle->handle.stream.isatty) { in zend_stream_read()
165 return file_handle->handle.stream.reader(file_handle->handle.stream.handle, buf, len); in zend_stream_read()
182 file_handle->handle.fp = fdopen(file_handle->handle.fd, "rb"); in zend_stream_fixup()
185 if (!file_handle->handle.fp) { in zend_stream_fixup()
188 memset(&file_handle->handle.stream.mmap, 0, sizeof(zend_mmap)); in zend_stream_fixup()
189 …file_handle->handle.stream.isatty = isatty(fileno((FILE *)file_handle->handle.stream.handle)) … in zend_stream_fixup()
190 file_handle->handle.stream.reader = (zend_stream_reader_t)zend_stream_stdio_reader; in zend_stream_fixup()
191 file_handle->handle.stream.closer = (zend_stream_closer_t)zend_stream_stdio_closer; in zend_stream_fixup()
192 file_handle->handle.stream.fsizer = (zend_stream_fsizer_t)zend_stream_stdio_fsizer; in zend_stream_fixup()
193 memset(&file_handle->handle.stream.mmap, 0, sizeof(file_handle->handle.stream.mmap)); in zend_stream_fixup()
200 file_handle->handle.stream.mmap.pos = 0; in zend_stream_fixup()
201 *buf = file_handle->handle.stream.mmap.buf; in zend_stream_fixup()
202 *len = file_handle->handle.stream.mmap.len; in zend_stream_fixup()
217 if (old_type == ZEND_HANDLE_FP && !file_handle->handle.stream.isatty && size) { in zend_stream_fixup()
221 if (file_handle->handle.fp && in zend_stream_fixup()
225 … *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), 0); in zend_stream_fixup()
227 zend_long offset = ftell(file_handle->handle.fp); in zend_stream_fixup()
228 file_handle->handle.stream.mmap.map = *buf; in zend_stream_fixup()
234 file_handle->handle.stream.mmap.buf = *buf; in zend_stream_fixup()
235 file_handle->handle.stream.mmap.len = size; in zend_stream_fixup()
241 file_handle->handle.stream.mmap.map = 0; in zend_stream_fixup()
242 file_handle->handle.stream.mmap.buf = *buf = safe_emalloc(1, size, ZEND_MMAP_AHEAD); in zend_stream_fixup()
243 file_handle->handle.stream.mmap.len = zend_stream_read(file_handle, *buf, size); in zend_stream_fixup()
258 file_handle->handle.stream.mmap.map = 0; in zend_stream_fixup()
259 file_handle->handle.stream.mmap.len = size; in zend_stream_fixup()
263 file_handle->handle.stream.mmap.buf = *buf; in zend_stream_fixup()
266 if (file_handle->handle.stream.mmap.len == 0) { in zend_stream_fixup()
268 file_handle->handle.stream.mmap.buf = *buf; in zend_stream_fixup()
272 …memset(file_handle->handle.stream.mmap.buf + file_handle->handle.stream.mmap.len, 0, ZEND_MMAP_AHE… in zend_stream_fixup()
278 file_handle->handle.stream.mmap.pos = 0; in zend_stream_fixup()
279 file_handle->handle.stream.mmap.old_handle = file_handle->handle.stream.handle; in zend_stream_fixup()
280 file_handle->handle.stream.mmap.old_closer = file_handle->handle.stream.closer; in zend_stream_fixup()
281 file_handle->handle.stream.handle = &file_handle->handle.stream; in zend_stream_fixup()
282 file_handle->handle.stream.closer = (zend_stream_closer_t)zend_stream_mmap_closer; in zend_stream_fixup()
284 *buf = file_handle->handle.stream.mmap.buf; in zend_stream_fixup()
285 *len = file_handle->handle.stream.mmap.len; in zend_stream_fixup()
297 fclose(fh->handle.fp); in zend_file_handle_dtor()
301 if (fh->handle.stream.closer && fh->handle.stream.handle) { in zend_file_handle_dtor()
302 fh->handle.stream.closer(fh->handle.stream.handle); in zend_file_handle_dtor()
304 fh->handle.stream.handle = NULL; in zend_file_handle_dtor()
330 return fh1->handle.fd == fh2->handle.fd; in zend_compare_file_handles()
332 return fh1->handle.fp == fh2->handle.fp; in zend_compare_file_handles()
334 return fh1->handle.stream.handle == fh2->handle.stream.handle; in zend_compare_file_handles()
336 return (fh1->handle.stream.handle == &fh1->handle.stream && in zend_compare_file_handles()
337 fh2->handle.stream.handle == &fh2->handle.stream && in zend_compare_file_handles()
338 fh1->handle.stream.mmap.old_handle == fh2->handle.stream.mmap.old_handle) in zend_compare_file_handles()
339 || fh1->handle.stream.handle == fh2->handle.stream.handle; in zend_compare_file_handles()