source: src/router/php7/ext/opcache/Optimizer/zend_func_info.h @ 31874

Last change on this file since 31874 was 31874, checked in by brainslayer, 6 weeks ago

update php

File size: 2.5 KB
Line 
1/*
2   +----------------------------------------------------------------------+
3   | Zend Engine, Func Info                                               |
4   +----------------------------------------------------------------------+
5   | Copyright (c) 1998-2017 The PHP Group                                |
6   +----------------------------------------------------------------------+
7   | This source file is subject to version 3.01 of the PHP 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.php.net/license/3_01.txt                                  |
11   | If you did not receive a copy of the PHP license and are unable to   |
12   | obtain it through the world-wide-web, please send a note to          |
13   | license@php.net so we can mail you a copy immediately.               |
14   +----------------------------------------------------------------------+
15   | Authors: Dmitry Stogov <dmitry@zend.com>                             |
16   +----------------------------------------------------------------------+
17*/
18
19#ifndef ZEND_FUNC_INFO_H
20#define ZEND_FUNC_INFO_H
21
22#include "zend_ssa.h"
23
24/* func flags */
25#define ZEND_FUNC_INDIRECT_VAR_ACCESS      (1<<0)
26#define ZEND_FUNC_HAS_CALLS                (1<<1)
27#define ZEND_FUNC_VARARG                   (1<<2)
28#define ZEND_FUNC_NO_LOOPS                 (1<<3)
29#define ZEND_FUNC_IRREDUCIBLE              (1<<4)
30#define ZEND_FUNC_RECURSIVE                (1<<7)
31#define ZEND_FUNC_RECURSIVE_DIRECTLY       (1<<8)
32#define ZEND_FUNC_RECURSIVE_INDIRECTLY     (1<<9)
33
34/* The following flags are valid only for return values of internal functions
35 * returned by zend_get_func_info()
36 */
37#define FUNC_MAY_WARN                      (1<<30)
38
39typedef struct _zend_func_info zend_func_info;
40typedef struct _zend_call_info zend_call_info;
41
42#define ZEND_FUNC_INFO(op_array) \
43        ((zend_func_info*)((op_array)->reserved[zend_func_info_rid]))
44
45#define ZEND_SET_FUNC_INFO(op_array, info) do { \
46                zend_func_info** pinfo = (zend_func_info**)&(op_array)->reserved[zend_func_info_rid]; \
47                *pinfo = info; \
48        } while (0)
49
50BEGIN_EXTERN_C()
51
52extern int zend_func_info_rid;
53
54uint32_t zend_get_func_info(const zend_call_info *call_info, const zend_ssa *ssa);
55
56int zend_func_info_startup(void);
57int zend_func_info_shutdown(void);
58
59END_EXTERN_C()
60
61#endif /* ZEND_FUNC_INFO_H */
62
63/*
64 * Local variables:
65 * tab-width: 4
66 * c-basic-offset: 4
67 * indent-tabs-mode: t
68 * End:
69 */
Note: See TracBrowser for help on using the repository browser.