PHP_FUNCTION(textdomain)
{
- pval *domain;
+ pval **domain;
char *domain_name, *retval;
+ char *val;
- if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &domain) == FAILURE) {
+ if (ARG_COUNT(ht) != 1 || getParametersEx(1, &domain) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string(domain);
+ convert_to_string_ex(domain);
- if (strcmp(domain->value.str.val, "")
- && strcmp(domain->value.str.val, "0"))
- {
- domain_name = domain->value.str.val;
+ val = (*domain)->value.str.val;
+ if (strcmp(val, "") && strcmp(val, "0")) {
+ domain_name = val;
} else {
domain_name = NULL;
}
PHP_FUNCTION(gettext)
{
- pval *msgid;
+ pval **msgid;
char *msgstr;
- if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &msgid) == FAILURE) {
+ if (ARG_COUNT(ht) != 1 || getParametersEx(1, &msgid) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string(msgid);
+ convert_to_string_ex(msgid);
- msgstr = gettext(msgid->value.str.val);
+ msgstr = gettext((*msgid)->value.str.val);
RETURN_STRING(msgstr, 1);
}
PHP_FUNCTION(dgettext)
{
- pval *domain_name, *msgid;
+ pval **domain_name, **msgid;
char *msgstr;
if (ARG_COUNT(ht) != 2
- || getParameters(ht, 2, &domain_name, &msgid) == FAILURE)
+ || getParametersEx(2, &domain_name, &msgid) == FAILURE)
{
WRONG_PARAM_COUNT;
}
- convert_to_string(domain_name);
- convert_to_string(msgid);
+ convert_to_string_ex(domain_name);
+ convert_to_string_ex(msgid);
- msgstr = dgettext(domain_name->value.str.val, msgid->value.str.val);
+ msgstr = dgettext((*domain_name)->value.str.val, (*msgid)->value.str.val);
RETURN_STRING(msgstr, 1);
}
PHP_FUNCTION(dcgettext)
{
- pval *domain_name, *msgid, *category;
+ pval **domain_name, **msgid, **category;
char *msgstr;
if (ARG_COUNT(ht) != 3
- || getParameters(ht, 3, &domain_name, &msgid, &category) == FAILURE)
+ || getParametersEx(3, &domain_name, &msgid, &category) == FAILURE)
{
WRONG_PARAM_COUNT;
}
- convert_to_string(domain_name);
- convert_to_string(msgid);
- convert_to_long(category);
+ convert_to_string_ex(domain_name);
+ convert_to_string_ex(msgid);
+ convert_to_long_ex(category);
- msgstr = dcgettext(domain_name->value.str.val,
- msgid->value.str.val,
- category->value.lval);
+ msgstr = dcgettext((*domain_name)->value.str.val,
+ (*msgid)->value.str.val,
+ (*category)->value.lval);
RETURN_STRING(msgstr, 1);
}
PHP_FUNCTION(bindtextdomain)
{
- pval *domain_name, *dir;
+ pval **domain_name, **dir;
char *retval, *dir_name;
+ char *val;
if (ARG_COUNT(ht) != 2
- || getParameters(ht, 2, &domain_name, &dir) == FAILURE)
+ || getParametersEx(2, &domain_name, &dir) == FAILURE)
{
WRONG_PARAM_COUNT;
}
- convert_to_string(domain_name);
- convert_to_string(dir);
+ convert_to_string_ex(domain_name);
+ convert_to_string_ex(dir);
- if (strcmp(dir->value.str.val, "")
- && strcmp(dir->value.str.val, "0"))
- {
- dir_name = dir->value.str.val;
+ val = (*dir)->value.str.val;
+ if (strcmp(val, "") && strcmp(val, "0")) {
+ dir_name = val;
} else {
dir_name = NULL;
}
- retval = bindtextdomain(domain_name->value.str.val, dir_name);
+ retval = bindtextdomain((*domain_name)->value.str.val, dir_name);
RETURN_STRING(retval, 1);
}
Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously. */
PHP_FUNCTION(sysvsem_get)
{
- pval *arg_key, *arg_max_acquire, *arg_perm;
+ pval **arg_key, **arg_max_acquire, **arg_perm;
int key, max_acquire, perm;
int semid;
struct sembuf sop[3];
switch (ARG_COUNT(ht)) {
case 1:
- if (getParameters(ht, 1, &arg_key)==FAILURE) {
+ if (getParametersEx(1, &arg_key)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(arg_key);
- key = (int)arg_key->value.lval;
+ convert_to_long_ex(arg_key);
+ key = (int)(*arg_key)->value.lval;
break;
case 2:
- if (getParameters(ht, 2, &arg_key, &arg_max_acquire)==FAILURE) {
+ if (getParametersEx(2, &arg_key, &arg_max_acquire)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(arg_key);
- key = (int)arg_key->value.lval;
- convert_to_long(arg_max_acquire);
- max_acquire = (int)arg_max_acquire->value.lval;
+ convert_to_long_ex(arg_key);
+ key = (int)(*arg_key)->value.lval;
+ convert_to_long_ex(arg_max_acquire);
+ max_acquire = (int)(*arg_max_acquire)->value.lval;
break;
case 3:
- if (getParameters(ht, 3, &arg_key, &arg_max_acquire, &arg_perm)==FAILURE) {
+ if (getParametersEx(3, &arg_key, &arg_max_acquire, &arg_perm)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(arg_key);
- key = (int)arg_key->value.lval;
- convert_to_long(arg_max_acquire);
- max_acquire = (int)arg_max_acquire->value.lval;
- convert_to_long(arg_perm);
- perm = (int)arg_perm->value.lval;
+ convert_to_long_ex(arg_key);
+ convert_to_long_ex(arg_max_acquire);
+ convert_to_long_ex(arg_perm);
+ key = (int)(*arg_key)->value.lval;
+ max_acquire = (int)(*arg_max_acquire)->value.lval;
+ perm = (int)(*arg_perm)->value.lval;
break;
default:
WRONG_PARAM_COUNT;
static void _php3_sysvsem_semop(INTERNAL_FUNCTION_PARAMETERS, int acquire)
{
- pval *arg_id;
+ pval **arg_id;
int id, type;
sysvsem_sem *sem_ptr;
struct sembuf sop;
switch(ARG_COUNT(ht)) {
case 1:
- if (getParameters(ht, 1, &arg_id)==FAILURE) {
+ if (getParametersEx(1, &arg_id)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(arg_id);
- id = (int)arg_id->value.lval;
+ convert_to_long_ex(arg_id);
+ id = (int)(*arg_id)->value.lval;
break;
default:
WRONG_PARAM_COUNT;
#include "../standard/php3_var.h"
function_entry sysvshm_functions[] = {
- {"shm_attach", php3_sysvshm_attach, NULL},
- {"shm_detach", php3_sysvshm_detach, NULL},
- {"shm_remove", php3_sysvshm_remove, NULL},
- {"shm_put_var", php3_sysvshm_put_var, NULL},
- {"shm_get_var", php3_sysvshm_get_var, NULL},
- {"shm_remove_var", php3_sysvshm_remove_var, NULL},
- {NULL, NULL, NULL}
+ PHP_FE(shm_attach, NULL)
+ PHP_FE(shm_remove, NULL)
+ PHP_FE(shm_detach, NULL)
+ PHP_FE(shm_put_var, NULL)
+ PHP_FE(shm_get_var, NULL)
+ PHP_FE(shm_remove_var, NULL)
+ {0}
};
-php3_module_entry sysvshm_module_entry = {
- "System V Shared-Memory", sysvshm_functions, php3_minit_sysvshm, NULL, NULL, NULL, NULL, STANDARD_MODULE_PROPERTIES
+zend_module_entry sysvshm_module_entry = {
+ "System V Shared-Memory", sysvshm_functions,
+ PHP_MINIT(sysvshm), NULL,
+ NULL, NULL,
+ NULL,
+ STANDARD_MODULE_PROPERTIES
};
efree(shm_ptr);
}
-
-int php3_minit_sysvshm(INIT_FUNC_ARGS)
+PHP_MINIT_FUNCTION(sysvshm)
{
php3_sysvshm_module.le_shm = register_list_destructors(php3i_release_sysvshm, NULL);
if (cfg_get_long("sysvshm.init_mem",
/* {{{ proto int shm_attach(int key, int size, int flag)
Return an id for the shared memory with the given key. */
-PHP_FUNCTION(sysvshm_attach)
+PHP_FUNCTION(shm_attach)
{
- pval *arg_key,*arg_size,*arg_flag;
+ pval **arg_key,**arg_size,**arg_flag;
long shm_size,shm_flag;
sysvshm_shm *shm_list_ptr;
char *shm_ptr;
sysvshm_chunk_head *chunk_ptr;
key_t shm_key;
long shm_id,list_id;
+ int ac = ARG_COUNT(ht);
shm_flag = 0666;
shm_size = php3_sysvshm_module.init_mem;
- switch (ARG_COUNT(ht)) {
- case 1:
- if (getParameters(ht, 1, &arg_key)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_key);
- shm_key = arg_key->value.lval;
- break;
- case 2:
- if (getParameters(ht, 2, &arg_key, &arg_size)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_key);
- shm_key = arg_key->value.lval;
- convert_to_long(arg_size);
- shm_size=arg_size->value.lval;
- break;
- case 3:
- if (getParameters(ht, 3, &arg_key, &arg_size, &arg_flag)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_key);
- shm_key = arg_key->value.lval;
- convert_to_long(arg_size);
- shm_size=arg_size->value.lval;
- convert_to_long(arg_flag);
- shm_flag = arg_flag->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ac < 1 || ac > 3 || getParametersEx(ac, &arg_key, &arg_size, &arg_flag) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+ switch (ac) {
+ case 3:
+ convert_to_long_ex(arg_flag);
+ shm_flag = (*arg_flag)->value.lval;
+ case 2:
+ convert_to_long_ex(arg_size);
+ shm_size= (*arg_size)->value.lval;
+ case 1:
+ convert_to_long_ex(arg_key);
+ shm_key = (*arg_key)->value.lval;
+ }
if((shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm)))==NULL) {
php_error(E_WARNING, "shm_attach() failed for key 0x%x: cannot allocate internal listelement", shm_key);
}
- shm_list_ptr->key = shm_key;
+ shm_list_ptr->key = shm_key;
shm_list_ptr->id = shm_id;
shm_list_ptr->ptr = chunk_ptr;
list_id = php3_list_insert(shm_list_ptr, php3_sysvshm_module.le_shm);
/* {{{ proto int shm_detach(int id)
releases the shared memory attachment with the given id. */
-PHP_FUNCTION(sysvshm_detach)
+PHP_FUNCTION(shm_detach)
{
- pval *arg_id;
+ pval **arg_id;
long id;
- switch (ARG_COUNT(ht)) {
- case 1:
- if (getParameters(ht, 1, &arg_id)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_id);
- id = arg_id->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ARG_COUNT(ht) != 1 || getParametersEx(1, &arg_id) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+ convert_to_long_ex(arg_id);
+
+ id = (*arg_id)->value.lval;
+
php3_list_delete(id);
+
+ RETURN_TRUE;
}
/* }}} */
/* {{{ proto int shm_remove(int key)
removes the shared memory with the given key. */
-PHP_FUNCTION(sysvshm_remove)
+PHP_FUNCTION(shm_remove)
{
- pval *arg_key;
+ pval **arg_key;
long id;
key_t key;
-
- switch (ARG_COUNT(ht)) {
- case 1:
- if (getParameters(ht, 1, &arg_key)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_key);
- key = arg_key->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ARG_COUNT(ht) != 1 || getParametersEx(1, &arg_key) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+ convert_to_long_ex(arg_key);
+
+ key = (*arg_key)->value.lval;
+
if((id=shmget(key,0,0))<0) {
php_error(E_WARNING, "%d is not a existing SysV shared memory key", key);
RETURN_FALSE;
/* {{{ proto int shm_put(int id, int key, object *variable)
insert a variable into shared memory. */
-PHP_FUNCTION(sysvshm_put_var)
+PHP_FUNCTION(shm_put_var)
{
- pval *arg_id, *arg_key, *arg_var;
+ pval **arg_id, **arg_key, **arg_var;
long key, id;
sysvshm_shm *shm_list_ptr;
int type;
pval shm_var;
int ret;
- switch (ARG_COUNT(ht)) {
- case 3:
- if (getParameters(ht, 3, &arg_id, &arg_key,&arg_var)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_id);
- id = arg_id->value.lval;
- convert_to_long(arg_key);
- key = arg_key->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ARG_COUNT(ht) != 3 || getParametersEx(3, &arg_id, &arg_key,&arg_var) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+
+ convert_to_long_ex(arg_id);
+ id = (*arg_id)->value.lval;
+ convert_to_long_ex(arg_key);
+ key = (*arg_key)->value.lval;
shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
if (type!=php3_sysvshm_module.le_shm) {
shm_var.type=IS_STRING;
shm_var.value.str.len=0;
shm_var.value.str.val=0;
- php_var_serialize(&shm_var,&arg_var);
+ php_var_serialize(&shm_var,arg_var);
/* insert serialized variable into shared memory */
ret=php3int_put_shmdata(shm_list_ptr->ptr,key,shm_var.value.str.val,shm_var.value.str.len);
/* {{{ proto string/float/int/array shm_get_var(int id, int key)
returns a variable into shared memory. */
-PHP_FUNCTION(sysvshm_get_var)
+PHP_FUNCTION(shm_get_var)
{
- pval *arg_id, *arg_key;
+ pval **arg_id, **arg_key;
long key, id;
sysvshm_shm *shm_list_ptr;
int type;
long shm_varpos;
sysvshm_chunk *shm_var;
- switch (ARG_COUNT(ht)) {
- case 2:
- if (getParameters(ht, 2, &arg_id, &arg_key)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_id);
- id = arg_id->value.lval;
- convert_to_long(arg_key);
- key = arg_key->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ARG_COUNT(ht) != 2 || getParametersEx(2, &arg_id, &arg_key) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+ convert_to_long_ex(arg_id);
+ id = (*arg_id)->value.lval;
+ convert_to_long_ex(arg_key);
+ key = (*arg_key)->value.lval;
+
shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
if (type!=php3_sysvshm_module.le_shm) {
php_error(E_WARNING, "%d is not a SysV shared memory index", id);
/* {{{ proto int shm_remove_var(int id, int key)
removes variable from shared memory. */
-PHP_FUNCTION(sysvshm_remove_var)
+PHP_FUNCTION(shm_remove_var)
{
- pval *arg_id, *arg_key;
+ pval **arg_id, **arg_key;
long key, id;
sysvshm_shm *shm_list_ptr;
int type;
long shm_varpos;
- switch (ARG_COUNT(ht)) {
- case 2:
- if (getParameters(ht, 2, &arg_id, &arg_key)==FAILURE) {
- RETURN_FALSE;
- }
- convert_to_long(arg_id);
- id = arg_id->value.lval;
- convert_to_long(arg_key);
- key = arg_key->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ if(ARG_COUNT(ht) != 2 || getParametersEx(2, &arg_id, &arg_key) == FAILURE) {
+ WRONG_PARAM_COUNT;
}
+ convert_to_long_ex(arg_id);
+ id = (*arg_id)->value.lval;
+ convert_to_long_ex(arg_key);
+ key = (*arg_key)->value.lval;
+
shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
if (type!=php3_sysvshm_module.le_shm) {
php_error(E_WARNING, "%d is not a SysV shared memory index", id);