Lines Matching refs:handle

53 static size_t zend_stream_stdio_reader(void *handle, char *buf, size_t len TSRMLS_DC) /* {{{ */  in zend_stream_stdio_reader()  argument
55 return fread(buf, 1, len, (FILE*)handle); in zend_stream_stdio_reader()
58 static void zend_stream_stdio_closer(void *handle TSRMLS_DC) /* {{{ */ in zend_stream_stdio_closer()
60 if (handle && (FILE*)handle != stdin) { in zend_stream_stdio_closer()
61 fclose((FILE*)handle); in zend_stream_stdio_closer()
65 static size_t zend_stream_stdio_fsizer(void *handle TSRMLS_DC) /* {{{ */ in zend_stream_stdio_fsizer()
68 if (handle && fstat(fileno((FILE*)handle), &buf) == 0) { in zend_stream_stdio_fsizer()
92 stream->handle = stream->mmap.old_handle; in zend_stream_unmap()
98 if (stream->mmap.old_closer && stream->handle) { in zend_stream_mmap_closer()
99 stream->mmap.old_closer(stream->handle TSRMLS_CC); in zend_stream_mmap_closer()
112 return file_handle->handle.stream.mmap.len; in zend_stream_fsize()
115 return file_handle->handle.stream.fsizer(file_handle->handle.stream.handle TSRMLS_CC); in zend_stream_fsize()
117 if (file_handle->handle.fp && fstat(fileno(file_handle->handle.fp), &buf) == 0) { in zend_stream_fsize()
129 ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle TSRMLS_DC) /* {{{ */ in zend_stream_open()
132 return zend_stream_open_function(filename, handle TSRMLS_CC); in zend_stream_open()
134 handle->type = ZEND_HANDLE_FP; in zend_stream_open()
135 handle->opened_path = NULL; in zend_stream_open()
136 handle->handle.fp = zend_fopen(filename, &handle->opened_path TSRMLS_CC); in zend_stream_open()
137 handle->filename = (char *)filename; in zend_stream_open()
138 handle->free_filename = 0; in zend_stream_open()
139 memset(&handle->handle.stream.mmap, 0, sizeof(zend_mmap)); in zend_stream_open()
141 return (handle->handle.fp) ? SUCCESS : FAILURE; in zend_stream_open()
148 …if (file_handle->handle.stream.reader(file_handle->handle.stream.handle, &buf, sizeof(buf) TSRMLS_… in zend_stream_getc()
156 if (!zend_stream_is_mmap(file_handle) && file_handle->handle.stream.isatty) {
178 return file_handle->handle.stream.reader(file_handle->handle.stream.handle, buf, len TSRMLS_CC);
195 file_handle->handle.fp = fdopen(file_handle->handle.fd, "rb");
198 if (!file_handle->handle.fp) {
201 memset(&file_handle->handle.stream.mmap, 0, sizeof(zend_mmap));
202 …file_handle->handle.stream.isatty = isatty(fileno((FILE *)file_handle->handle.stream.handle)) …
203 file_handle->handle.stream.reader = (zend_stream_reader_t)zend_stream_stdio_reader;
204 file_handle->handle.stream.closer = (zend_stream_closer_t)zend_stream_stdio_closer;
205 file_handle->handle.stream.fsizer = (zend_stream_fsizer_t)zend_stream_stdio_fsizer;
206 memset(&file_handle->handle.stream.mmap, 0, sizeof(file_handle->handle.stream.mmap));
213 file_handle->handle.stream.mmap.pos = 0;
214 *buf = file_handle->handle.stream.mmap.buf;
215 *len = file_handle->handle.stream.mmap.len;
230 if (old_type == ZEND_HANDLE_FP && !file_handle->handle.stream.isatty && size) {
234 if (file_handle->handle.fp &&
238 … *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), 0);
240 long offset = ftell(file_handle->handle.fp);
241 file_handle->handle.stream.mmap.map = *buf;
247 file_handle->handle.stream.mmap.buf = *buf;
248 file_handle->handle.stream.mmap.len = size;
254 file_handle->handle.stream.mmap.map = 0;
255 file_handle->handle.stream.mmap.buf = *buf = safe_emalloc(1, size, ZEND_MMAP_AHEAD);
256 file_handle->handle.stream.mmap.len = zend_stream_read(file_handle, *buf, size TSRMLS_CC);
271 file_handle->handle.stream.mmap.map = 0;
272 file_handle->handle.stream.mmap.len = size;
276 file_handle->handle.stream.mmap.buf = *buf;
279 if (file_handle->handle.stream.mmap.len == 0) {
281 file_handle->handle.stream.mmap.buf = *buf;
285 …memset(file_handle->handle.stream.mmap.buf + file_handle->handle.stream.mmap.len, 0, ZEND_MMAP_AHE…
292 file_handle->handle.stream.mmap.pos = 0;
293 file_handle->handle.stream.mmap.old_handle = file_handle->handle.stream.handle;
294 file_handle->handle.stream.mmap.old_closer = file_handle->handle.stream.closer;
295 file_handle->handle.stream.handle = &file_handle->handle.stream;
296 file_handle->handle.stream.closer = (zend_stream_closer_t)zend_stream_mmap_closer;
298 *buf = file_handle->handle.stream.mmap.buf;
299 *len = file_handle->handle.stream.mmap.len;
311 fclose(fh->handle.fp);
315 if (fh->handle.stream.closer && fh->handle.stream.handle) {
316 fh->handle.stream.closer(fh->handle.stream.handle TSRMLS_CC);
318 fh->handle.stream.handle = NULL;
344 return fh1->handle.fd == fh2->handle.fd;
346 return fh1->handle.fp == fh2->handle.fp;
348 return fh1->handle.stream.handle == fh2->handle.stream.handle;
350 return (fh1->handle.stream.handle == &fh1->handle.stream &&
351 fh2->handle.stream.handle == &fh2->handle.stream &&
352 fh1->handle.stream.mmap.old_handle == fh2->handle.stream.mmap.old_handle)
353 || fh1->handle.stream.handle == fh2->handle.stream.handle;