Annotation of embedaddon/php/Zend/zend_stream.h, revision 1.1

1.1     ! misho       1: /*
        !             2:    +----------------------------------------------------------------------+
        !             3:    | Zend Engine                                                          |
        !             4:    +----------------------------------------------------------------------+
        !             5:    | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |
        !             6:    +----------------------------------------------------------------------+
        !             7:    | This source file is subject to version 2.00 of the Zend license,     |
        !             8:    | that is bundled with this package in the file LICENSE, and is        |
        !             9:    | available through the world-wide-web at the following url:           |
        !            10:    | http://www.zend.com/license/2_00.txt.                                |
        !            11:    | If you did not receive a copy of the Zend license and are unable to  |
        !            12:    | obtain it through the world-wide-web, please send a note to          |
        !            13:    | license@zend.com so we can mail you a copy immediately.              |
        !            14:    +----------------------------------------------------------------------+
        !            15:    | Authors: Wez Furlong <wez@thebrainroom.com>                          |
        !            16:    |          Scott MacVicar <scottmac@php.net>                           |
        !            17:    |          Nuno Lopes <nlopess@php.net>                                |
        !            18:    |          Marcus Boerger <helly@php.net>                              |
        !            19:    +----------------------------------------------------------------------+
        !            20: */
        !            21: 
        !            22: /* $Id: zend_stream.h 321634 2012-01-01 13:15:04Z felipe $ */
        !            23: 
        !            24: #ifndef ZEND_STREAM_H
        !            25: #define ZEND_STREAM_H
        !            26: 
        !            27: /* Lightweight stream implementation for the ZE scanners.
        !            28:  * These functions are private to the engine.
        !            29:  * */
        !            30: typedef size_t (*zend_stream_fsizer_t)(void* handle TSRMLS_DC);
        !            31: typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len TSRMLS_DC);
        !            32: typedef void   (*zend_stream_closer_t)(void* handle TSRMLS_DC);
        !            33: 
        !            34: #define ZEND_MMAP_AHEAD 32 
        !            35: 
        !            36: typedef enum {
        !            37:        ZEND_HANDLE_FILENAME,
        !            38:        ZEND_HANDLE_FD,
        !            39:        ZEND_HANDLE_FP,
        !            40:        ZEND_HANDLE_STREAM,
        !            41:        ZEND_HANDLE_MAPPED
        !            42: } zend_stream_type;
        !            43: 
        !            44: typedef struct _zend_mmap {
        !            45:        size_t      len;
        !            46:        size_t      pos;
        !            47:        void        *map;
        !            48:        char        *buf;
        !            49:        void                  *old_handle;
        !            50:        zend_stream_closer_t   old_closer;
        !            51: } zend_mmap;
        !            52: 
        !            53: typedef struct _zend_stream {
        !            54:        void        *handle;
        !            55:        int         isatty;
        !            56:        zend_mmap   mmap;
        !            57:        zend_stream_reader_t   reader;
        !            58:        zend_stream_fsizer_t   fsizer;
        !            59:        zend_stream_closer_t   closer;
        !            60: } zend_stream;
        !            61: 
        !            62: typedef struct _zend_file_handle {
        !            63:        zend_stream_type  type;
        !            64:        char              *filename;
        !            65:        char              *opened_path;
        !            66:        union {
        !            67:                int           fd;
        !            68:                FILE          *fp;
        !            69:                zend_stream   stream;
        !            70:        } handle;
        !            71:        zend_bool free_filename;
        !            72: } zend_file_handle;
        !            73: 
        !            74: BEGIN_EXTERN_C()
        !            75: ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle TSRMLS_DC);
        !            76: ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len TSRMLS_DC);
        !            77: ZEND_API void zend_file_handle_dtor(zend_file_handle *fh TSRMLS_DC);
        !            78: ZEND_API int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2);
        !            79: END_EXTERN_C()
        !            80: 
        !            81: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>