cvs: /php4 ChangeLog /php4/ext/sysvshm php3_sysvshm.h sysvshm.c /php4/ext/sysvsem sysvsem.c
| From: | Sascha Schumann | Date: | Fri, 24 Sep 1999 19:13:36 +0000 |
| Subject: | cvs: /php4 ChangeLog /php4/ext/sysvshm php3_sysvshm.h sysvshm.c /php4/ext/sysvsem sysvsem.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4879@lists.php.net to get a copy of this message | ||
sas Fri Sep 24 15:13:36 1999 EDT
Modified files:
/php4 ChangeLog
/php4/ext/sysvshm php3_sysvshm.h sysvshm.c
/php4/ext/sysvsem sysvsem.c
Log:
Use new Zend API and some minor cleanup.
Index: php4/ChangeLog
diff -u php4/ChangeLog:1.140 php4/ChangeLog:1.141
--- php4/ChangeLog:1.140 Fri Sep 24 14:58:36 1999
+++ php4/ChangeLog Fri Sep 24 15:13:34 1999
@@ -2,6 +2,8 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ?? 1999, Version 4.0 Beta 3
+- Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use
+ the new high-performance Zend function API (Sascha)
- Extended var_dump to handle resource type somewhat (Andrey)
- Updated WDDX to use the new high-performance Zend function API (Andrey)
- Updated XML to use the new high-performance Zend function API. (Thies)
Index: php4/ext/sysvshm/php3_sysvshm.h
diff -u php4/ext/sysvshm/php3_sysvshm.h:1.3 php4/ext/sysvshm/php3_sysvshm.h:1.4
--- php4/ext/sysvshm/php3_sysvshm.h:1.3 Fri May 21 06:06:23 1999
+++ php4/ext/sysvshm/php3_sysvshm.h Fri Sep 24 15:13:34 1999
@@ -28,7 +28,7 @@
*/
-/* $Id: php3_sysvshm.h,v 1.3 1999/05/21 10:06:23 sas Exp $ */
+/* $Id: php3_sysvshm.h,v 1.4 1999/09/24 19:13:34 sas Exp $ */
#ifndef _PHP3_SYSVSHM_H
#define _PHP3_SYSVSHM_H
@@ -79,13 +79,13 @@
-extern int php3_minit_sysvshm(INIT_FUNC_ARGS);
-PHP_FUNCTION(sysvshm_attach);
-PHP_FUNCTION(sysvshm_detach);
-PHP_FUNCTION(sysvshm_remove);
-PHP_FUNCTION(sysvshm_put_var);
-PHP_FUNCTION(sysvshm_get_var);
-PHP_FUNCTION(sysvshm_remove_var);
+PHP_MINIT_FUNCTION(sysvshm);
+PHP_FUNCTION(shm_attach);
+PHP_FUNCTION(shm_detach);
+PHP_FUNCTION(shm_remove);
+PHP_FUNCTION(shm_put_var);
+PHP_FUNCTION(shm_get_var);
+PHP_FUNCTION(shm_remove_var);
extern int php3int_put_shmdata(sysvshm_chunk_head *ptr,long key,char *data, long len);
extern long php3int_check_shmdata(sysvshm_chunk_head *ptr, long key);
extern int php3int_remove_shmdata(sysvshm_chunk_head *ptr, long shm_varpos);
Index: php4/ext/sysvshm/sysvshm.c
diff -u php4/ext/sysvshm/sysvshm.c:1.8 php4/ext/sysvshm/sysvshm.c:1.9
--- php4/ext/sysvshm/sysvshm.c:1.8 Mon Sep 20 10:14:26 1999
+++ php4/ext/sysvshm/sysvshm.c Fri Sep 24 15:13:34 1999
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sysvshm.c,v 1.8 1999/09/20 14:14:26 andrey Exp $ */
+/* $Id: sysvshm.c,v 1.9 1999/09/24 19:13:34 sas Exp $ */
/* This has been built and tested on Solaris 2.6.
* It may not compile or execute correctly on other systems.
@@ -32,17 +32,21 @@
#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
};
@@ -59,8 +63,7 @@
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",
@@ -73,52 +76,35 @@
/* {{{ 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);
@@ -153,7 +139,7 @@
}
- 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);
@@ -165,49 +151,40 @@
/* {{{ 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;
@@ -225,29 +202,23 @@
/* {{{ 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) {
@@ -260,7 +231,7 @@
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);
@@ -280,9 +251,9 @@
/* {{{ 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;
@@ -290,21 +261,15 @@
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);
@@ -331,28 +296,22 @@
/* {{{ 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) {
Index: php4/ext/sysvsem/sysvsem.c
diff -u php4/ext/sysvsem/sysvsem.c:1.8 php4/ext/sysvsem/sysvsem.c:1.9
--- php4/ext/sysvsem/sysvsem.c:1.8 Wed Aug 25 12:53:57 1999
+++ php4/ext/sysvsem/sysvsem.c Fri Sep 24 15:13:34 1999
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sysvsem.c,v 1.8 1999/08/25 16:53:57 sas Exp $ */
+/* $Id: sysvsem.c,v 1.9 1999/09/24 19:13:34 sas Exp $ */
/* This has been built and tested on Solaris 2.6 and Linux 2.1.122.
* It may not compile or execute correctly on other systems.
@@ -131,7 +131,7 @@
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];
@@ -146,31 +146,31 @@
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;
@@ -281,18 +281,18 @@
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;