summaryrefslogtreecommitdiff
path: root/Zend/zend_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_stream.h')
-rw-r--r--Zend/zend_stream.h58
1 files changed, 24 insertions, 34 deletions
diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h
index 8279d69c4d..51651add38 100644
--- a/Zend/zend_stream.h
+++ b/Zend/zend_stream.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2018 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -29,32 +29,20 @@
* These functions are private to the engine.
* */
typedef size_t (*zend_stream_fsizer_t)(void* handle);
-typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len);
+typedef ssize_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len);
typedef void (*zend_stream_closer_t)(void* handle);
#define ZEND_MMAP_AHEAD 32
typedef enum {
ZEND_HANDLE_FILENAME,
- ZEND_HANDLE_FD,
ZEND_HANDLE_FP,
- ZEND_HANDLE_STREAM,
- ZEND_HANDLE_MAPPED
+ ZEND_HANDLE_STREAM
} zend_stream_type;
-typedef struct _zend_mmap {
- size_t len;
- size_t pos;
- void *map;
- char *buf;
- void *old_handle;
- zend_stream_closer_t old_closer;
-} zend_mmap;
-
typedef struct _zend_stream {
void *handle;
int isatty;
- zend_mmap mmap;
zend_stream_reader_t reader;
zend_stream_fsizer_t fsizer;
zend_stream_closer_t closer;
@@ -62,47 +50,49 @@ typedef struct _zend_stream {
typedef struct _zend_file_handle {
union {
- int fd;
FILE *fp;
zend_stream stream;
} handle;
const char *filename;
zend_string *opened_path;
zend_stream_type type;
- zend_bool free_filename;
+ /* free_filename is used by wincache */
+ /* TODO: Clean up filename vs opened_path mess */
+ zend_bool free_filename;
+ char *buf;
+ size_t len;
} zend_file_handle;
BEGIN_EXTERN_C()
+ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename);
+ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename);
ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle);
ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len);
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
ZEND_API int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2);
END_EXTERN_C()
+#ifdef ZEND_WIN32
+# include "win32/ioutil.h"
+typedef php_win32_ioutil_stat_t zend_stat_t;
#ifdef _WIN64
-# define zend_fseek _fseeki64
-# define zend_ftell _ftelli64
-# define zend_lseek _lseeki64
-# define zend_fstat _fstat64
-# define zend_stat _stat64
-typedef struct __stat64 zend_stat_t;
+# define zend_fseek _fseeki64
+# define zend_ftell _ftelli64
+# define zend_lseek _lseeki64
+# else
+# define zend_fseek fseek
+# define zend_ftell ftell
+# define zend_lseek lseek
+# endif
+# define zend_fstat php_win32_ioutil_fstat
+# define zend_stat php_win32_ioutil_stat
#else
+typedef struct stat zend_stat_t;
# define zend_fseek fseek
# define zend_ftell ftell
# define zend_lseek lseek
# define zend_fstat fstat
# define zend_stat stat
-typedef struct stat zend_stat_t;
#endif
#endif
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * indent-tabs-mode: t
- * End:
- * vim600: sw=4 ts=4 fdm=marker
- * vim<600: sw=4 ts=4
- */