Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / share / swig / 1.3.26 / php4 / const.i
CommitLineData
920dae64
AT
1/* Typemaps for constants */
2
3%typemap(consttab) int,
4 unsigned int,
5 short,
6 unsigned short,
7 long,
8 unsigned long,
9 unsigned char,
10 signed char,
11 bool,
12 enum SWIGTYPE
13 "REGISTER_LONG_CONSTANT( \"$symname\", $value, CONST_CS | CONST_PERSISTENT);";
14
15%typemap(consttab) float,
16 double
17 "REGISTER_DOUBLE_CONSTANT(\"$symname\", $value, CONST_CS | CONST_PERSISTENT);";
18
19%typemap(consttab) char
20 "REGISTER_STRING_CONSTANT(\"$symname\", \"$value\", CONST_CS | CONST_PERSISTENT );";
21
22%typemap(consttab) char *,
23 const char *,
24 char [],
25 const char []
26 "REGISTER_STRING_CONSTANT(\"$symname\", $value, CONST_CS | CONST_PERSISTENT);";
27
28%typemap(consttab) SWIGTYPE *,
29 SWIGTYPE &,
30 SWIGTYPE [] {
31 // This actually registers it as a global variable and constant. I don't like it, but I can't figure out
32 // the zend_constant code...
33 zval *z_var;
34 MAKE_STD_ZVAL(z_var);
35 SWIG_SetPointerZval(z_var, (void*)$value, $1_descriptor, 0);
36 //zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var,sizeof(zval *), NULL);
37 zend_constant c;
38 c.value = *z_var;
39 zval_copy_ctor(&c.value);
40 size_t len = strlen("$1");
41 c.name = zend_strndup( "$1", len );
42 c.name_len = len+1;
43 c.flags = CONST_CS | CONST_PERSISTENT;
44 c.module_number = module_number;
45 zend_register_constant( &c TSRMLS_CC );
46}