]> granicus.if.org Git - php/commitdiff
ported ext/shmop
authorAnatol Belski <ab@php.net>
Tue, 19 Aug 2014 12:05:39 +0000 (14:05 +0200)
committerAnatol Belski <ab@php.net>
Tue, 19 Aug 2014 12:05:39 +0000 (14:05 +0200)
ext/shmop/php_shmop.h
ext/shmop/shmop.c

index 2779fe14be1ece6e4347d09cbdefbc36160e519f..e0e0448709c536bfc0a8ae8904f6f83bdb923ee1 100644 (file)
@@ -45,7 +45,7 @@ struct php_shmop
        int shmflg;
        int shmatflg;
        char *addr;
-       int size;
+       php_int_t size;
 };
 
 typedef struct {
index 97e0ce14e9bbd0c3cb7bd8ad25981c2165ec795d..3a66d7343c27e839c1591ce6e3640ed4f518b50c 100644 (file)
@@ -146,13 +146,13 @@ PHP_MINFO_FUNCTION(shmop)
    gets and attaches a shared memory segment */
 PHP_FUNCTION(shmop_open)
 {
-       long key, mode, size;
+       php_int_t key, mode, size;
        struct php_shmop *shmop;        
        struct shmid_ds shm;
        char *flags;
        int flags_len;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsll", &key, &flags, &flags_len, &mode, &size) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "isii", &key, &flags, &flags_len, &mode, &size) == FAILURE) {
                return;
        }
 
@@ -227,13 +227,13 @@ err:
    reads from a shm segment */
 PHP_FUNCTION(shmop_read)
 {
-       long shmid, start, count;
+       php_int_t shmid, start, count;
        struct php_shmop *shmop;
        char *startaddr;
        int bytes;
        zend_string *return_string;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll", &shmid, &start, &count) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "iii", &shmid, &start, &count) == FAILURE) {
                return;
        }
 
@@ -262,10 +262,10 @@ PHP_FUNCTION(shmop_read)
    closes a shared memory segment */
 PHP_FUNCTION(shmop_close)
 {
-       long shmid;
+       php_int_t shmid;
        zval *res;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &shmid) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &shmid) == FAILURE) {
                return;
        }
 
@@ -280,10 +280,10 @@ PHP_FUNCTION(shmop_close)
    returns the shm size */
 PHP_FUNCTION(shmop_size)
 {
-       long shmid;
+       php_int_t shmid;
        struct php_shmop *shmop;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &shmid) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &shmid) == FAILURE) {
                return;
        }
 
@@ -299,11 +299,10 @@ PHP_FUNCTION(shmop_write)
 {
        struct php_shmop *shmop;
        int writesize;
-       long shmid, offset;
-       char *data;
-       int data_len;
+       php_int_t shmid, offset;
+       zend_string *data;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsl", &shmid, &data, &data_len, &offset) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "iSi", &shmid, &data, &offset) == FAILURE) {
                return;
        }
 
@@ -319,8 +318,8 @@ PHP_FUNCTION(shmop_write)
                RETURN_FALSE;
        }
 
-       writesize = (data_len < shmop->size - offset) ? data_len : shmop->size - offset;
-       memcpy(shmop->addr + offset, data, writesize);
+       writesize = (data->len < shmop->size - offset) ? data->len : shmop->size - offset;
+       memcpy(shmop->addr + offset, data->val, writesize);
 
        RETURN_INT(writesize);
 }
@@ -330,10 +329,10 @@ PHP_FUNCTION(shmop_write)
    mark segment for deletion */
 PHP_FUNCTION(shmop_delete)
 {
-       long shmid;
+       php_int_t shmid;
        struct php_shmop *shmop;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &shmid) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &shmid) == FAILURE) {
                return;
        }