1999-04-08 02:10:10 +08:00
|
|
|
/*
|
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
| Zend Engine |
|
|
|
|
+----------------------------------------------------------------------+
|
2001-02-26 13:43:27 +08:00
|
|
|
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
|
1999-04-08 02:10:10 +08:00
|
|
|
+----------------------------------------------------------------------+
|
2000-03-06 13:26:39 +08:00
|
|
|
| This source file is subject to version 0.92 of the Zend license, |
|
1999-07-16 22:58:16 +08:00
|
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
|
|
| available at through the world-wide-web at |
|
2000-03-06 13:26:39 +08:00
|
|
|
| http://www.zend.com/license/0_92.txt. |
|
1999-07-16 22:58:16 +08:00
|
|
|
| If you did not receive a copy of the Zend license and are unable to |
|
|
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
|
|
| license@zend.com so we can mail you a copy immediately. |
|
1999-04-08 02:10:10 +08:00
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
| Authors: Andi Gutmans <andi@zend.com> |
|
|
|
|
| Zeev Suraski <zeev@zend.com> |
|
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
*/
|
|
|
|
|
1999-07-16 22:58:16 +08:00
|
|
|
|
2000-07-03 08:55:36 +08:00
|
|
|
#ifndef ZEND_CONSTANTS_H
|
|
|
|
#define ZEND_CONSTANTS_H
|
1999-04-08 02:10:10 +08:00
|
|
|
|
1999-04-22 01:26:37 +08:00
|
|
|
#include "zend_globals.h"
|
|
|
|
|
1999-04-08 02:10:10 +08:00
|
|
|
#define CONST_CS 0x1 /* Case Sensitive */
|
|
|
|
#define CONST_PERSISTENT 0x2
|
|
|
|
|
1999-05-23 00:10:51 +08:00
|
|
|
typedef struct _zend_constant {
|
1999-04-08 02:10:10 +08:00
|
|
|
zval value;
|
|
|
|
int flags;
|
|
|
|
char *name;
|
|
|
|
uint name_len;
|
|
|
|
int module_number;
|
|
|
|
} zend_constant;
|
|
|
|
|
1999-04-22 01:26:37 +08:00
|
|
|
#define REGISTER_LONG_CONSTANT(name,lval,flags) zend_register_long_constant((name),sizeof(name),(lval),(flags),module_number ELS_CC)
|
|
|
|
#define REGISTER_DOUBLE_CONSTANT(name,dval,flags) zend_register_double_constant((name),sizeof(name),(dval),(flags),module_number ELS_CC)
|
|
|
|
#define REGISTER_STRING_CONSTANT(name,str,flags) zend_register_string_constant((name),sizeof(name),(str),(flags),module_number ELS_CC)
|
|
|
|
#define REGISTER_STRINGL_CONSTANT(name,str,len,flags) zend_register_stringl_constant((name),sizeof(name),(str),(len),(flags),module_number ELS_CC)
|
1999-04-08 02:10:10 +08:00
|
|
|
|
1999-04-22 01:26:37 +08:00
|
|
|
#define REGISTER_MAIN_LONG_CONSTANT(name,lval,flags) zend_register_long_constant((name),sizeof(name),(lval),(flags),0 ELS_CC)
|
|
|
|
#define REGISTER_MAIN_DOUBLE_CONSTANT(name,dval,flags) zend_register_double_constant((name),sizeof(name),(dval),(flags),0 ELS_CC)
|
|
|
|
#define REGISTER_MAIN_STRING_CONSTANT(name,str,flags) zend_register_string_constant((name),sizeof(name),(str),(flags),0 ELS_CC)
|
|
|
|
#define REGISTER_MAIN_STRINGL_CONSTANT(name,str,len,flags) zend_register_stringl_constant((name),sizeof(name),(str),(len),(flags),0 ELS_CC)
|
1999-04-08 02:10:10 +08:00
|
|
|
|
|
|
|
void clean_module_constants(int module_number);
|
2000-01-18 01:33:37 +08:00
|
|
|
void free_zend_constant(zend_constant *c);
|
1999-08-21 01:02:11 +08:00
|
|
|
int zend_startup_constants(ELS_D);
|
1999-04-22 01:26:37 +08:00
|
|
|
int zend_shutdown_constants(ELS_D);
|
1999-07-15 00:00:47 +08:00
|
|
|
void zend_register_standard_constants(ELS_D);
|
1999-04-08 02:10:10 +08:00
|
|
|
void clean_non_persistent_constants(void);
|
|
|
|
ZEND_API int zend_get_constant(char *name, uint name_len, zval *result);
|
1999-04-22 01:26:37 +08:00
|
|
|
ZEND_API void zend_register_long_constant(char *name, uint name_len, long lval, int flags, int module_number ELS_DC);
|
|
|
|
ZEND_API void zend_register_double_constant(char *name, uint name_len, double dval, int flags, int module_number ELS_DC);
|
|
|
|
ZEND_API void zend_register_string_constant(char *name, uint name_len, char *strval, int flags, int module_number ELS_DC);
|
|
|
|
ZEND_API void zend_register_stringl_constant(char *name, uint name_len, char *strval, uint strlen, int flags, int module_number ELS_DC);
|
2000-07-28 17:44:46 +08:00
|
|
|
ZEND_API int zend_register_constant(zend_constant *c ELS_DC);
|
1999-07-15 00:00:47 +08:00
|
|
|
void zend_copy_constants(HashTable *target, HashTable *sourc);
|
1999-12-02 06:55:20 +08:00
|
|
|
void copy_zend_constant(zend_constant *c);
|
1999-04-08 02:10:10 +08:00
|
|
|
|
2000-01-18 01:33:37 +08:00
|
|
|
#define ZEND_CONSTANT_DTOR (void (*)(void *)) free_zend_constant
|
1999-07-10 01:24:47 +08:00
|
|
|
|
1999-04-08 02:10:10 +08:00
|
|
|
#endif
|