PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LCOV - code coverage report
Current view: top level - main/streams - mmap.c (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 18 21 85.7 %
Date: 2014-08-04 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :   +----------------------------------------------------------------------+
       3             :   | PHP Version 5                                                        |
       4             :   +----------------------------------------------------------------------+
       5             :   | Copyright (c) 1997-2014 The PHP Group                                |
       6             :   +----------------------------------------------------------------------+
       7             :   | This source file is subject to version 3.01 of the PHP license,      |
       8             :   | that is bundled with this package in the file LICENSE, and is        |
       9             :   | available through the world-wide-web at the following url:           |
      10             :   | http://www.php.net/license/3_01.txt                                  |
      11             :   | If you did not receive a copy of the PHP license and are unable to   |
      12             :   | obtain it through the world-wide-web, please send a note to          |
      13             :   | license@php.net so we can mail you a copy immediately.               |
      14             :   +----------------------------------------------------------------------+
      15             :   | Author: Wez Furlong <wez@thebrainroom.com>                           |
      16             :   +----------------------------------------------------------------------+
      17             : */
      18             : 
      19             : /* $Id$ */
      20             : 
      21             : /* Memory Mapping interface for streams */
      22             : #include "php.h"
      23             : #include "php_streams_int.h"
      24             : 
      25       29319 : PHPAPI char *_php_stream_mmap_range(php_stream *stream, size_t offset, size_t length, php_stream_mmap_operation_t mode, size_t *mapped_len TSRMLS_DC)
      26             : {
      27             :         php_stream_mmap_range range;
      28             :         
      29       29319 :         range.offset = offset;
      30       29319 :         range.length = length;
      31       29319 :         range.mode = mode;
      32       29319 :         range.mapped = NULL;
      33             : 
      34             :         /* For now, we impose an arbitrary limit to avoid
      35             :          * runaway swapping when large files are passed thru. */
      36       29319 :         if (length > 4 * 1024 * 1024) {
      37           0 :                 return NULL;
      38             :         }
      39             :         
      40       29319 :         if (PHP_STREAM_OPTION_RETURN_OK == php_stream_set_option(stream, PHP_STREAM_OPTION_MMAP_API, PHP_STREAM_MMAP_MAP_RANGE, &range)) {
      41       24650 :                 if (mapped_len) {
      42       24650 :                         *mapped_len = range.length;
      43             :                 }
      44       24650 :                 return range.mapped;
      45             :         }
      46        4669 :         return NULL;
      47             : }
      48             : 
      49       24617 : PHPAPI int _php_stream_mmap_unmap(php_stream *stream TSRMLS_DC)
      50             : {
      51       24617 :         return php_stream_set_option(stream, PHP_STREAM_OPTION_MMAP_API, PHP_STREAM_MMAP_UNMAP, NULL) == PHP_STREAM_OPTION_RETURN_OK ? 1 : 0;
      52             : }
      53             : 
      54       14561 : PHPAPI int _php_stream_mmap_unmap_ex(php_stream *stream, off_t readden TSRMLS_DC)
      55             : {
      56       14561 :         int ret = 1;
      57             : 
      58       14561 :         if (php_stream_seek(stream, readden, SEEK_CUR) != 0) {
      59           0 :                 ret = 0;
      60             :         }
      61       14561 :         if (php_stream_mmap_unmap(stream) == 0) {
      62           0 :                 ret = 0;
      63             :         }
      64             : 
      65       14561 :         return ret;
      66             : }
      67             : 
      68             : /*
      69             :  * Local variables:
      70             :  * tab-width: 4
      71             :  * c-basic-offset: 4
      72             :  * End:
      73             :  * vim600: noet sw=4 ts=4 fdm=marker
      74             :  * vim<600: noet sw=4 ts=4
      75             :  */

Generated by: LCOV version 1.10

Generated at Mon, 04 Aug 2014 15:49:19 +0000 (28 days ago)

Copyright © 2005-2014 The PHP Group
All rights reserved.