mirror of
https://github.com/php/pecl-caching-apc.git
synced 2026-03-23 22:42:11 +01:00
157 lines
7.0 KiB
C
157 lines
7.0 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| APC |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 2006-2011 The PHP Group |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 3.01 of the PHP license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.php.net/license/3_01.txt. |
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
+----------------------------------------------------------------------+
|
|
| Authors: Daniel Cowgill <dcowgill@communityconnect.com> |
|
|
| George Schlossnagle <george@omniti.com> |
|
|
| Rasmus Lerdorf <rasmus@php.net> |
|
|
| Arun C. Murthy <arunc@yahoo-inc.com> |
|
|
| Gopal Vijayaraghavan <gopalv@yahoo-inc.com> |
|
|
+----------------------------------------------------------------------+
|
|
|
|
This software was contributed to PHP by Community Connect Inc. in 2002
|
|
and revised in 2005 by Yahoo! Inc. to add support for PHP 5.1.
|
|
Future revisions and derivatives of this source code must acknowledge
|
|
Community Connect Inc. as the original contributor of this module by
|
|
leaving this note intact in the source code.
|
|
|
|
All other licensing and usage conditions are those of the PHP Group.
|
|
|
|
*/
|
|
|
|
/* $Id$ */
|
|
|
|
#ifndef APC_GLOBALS_H
|
|
#define APC_GLOBALS_H
|
|
|
|
#include "apc_cache.h"
|
|
#include "apc_stack.h"
|
|
#include "apc_php.h"
|
|
#include "apc_main.h"
|
|
|
|
/* {{{ struct apc_rfc1867_data */
|
|
|
|
typedef struct _apc_rfc1867_data apc_rfc1867_data;
|
|
|
|
struct _apc_rfc1867_data {
|
|
char tracking_key[64];
|
|
int key_length;
|
|
size_t content_length;
|
|
char filename[128];
|
|
char name[64];
|
|
char *temp_filename;
|
|
int cancel_upload;
|
|
double start_time;
|
|
size_t bytes_processed;
|
|
size_t prev_bytes_processed;
|
|
int update_freq;
|
|
double rate;
|
|
int started;
|
|
};
|
|
/* }}} */
|
|
|
|
|
|
ZEND_BEGIN_MODULE_GLOBALS(apc)
|
|
/* configuration parameters */
|
|
zend_bool enabled; /* if true, apc is enabled (defaults to true) */
|
|
long shm_segments; /* number of shared memory segments to use */
|
|
long shm_size; /* size of each shared memory segment (in MB) */
|
|
long num_files_hint; /* parameter to apc_cache_create */
|
|
long user_entries_hint;
|
|
long gc_ttl; /* parameter to apc_cache_create */
|
|
long ttl; /* parameter to apc_cache_create */
|
|
long user_ttl;
|
|
#if APC_MMAP
|
|
char *mmap_file_mask; /* mktemp-style file-mask to pass to mmap */
|
|
#endif
|
|
char** filters; /* array of regex filters that prevent caching */
|
|
void* compiled_filters; /* compiled regex filters */
|
|
|
|
/* module variables */
|
|
zend_bool initialized; /* true if module was initialized */
|
|
apc_stack_t* cache_stack; /* the stack of cached executable code */
|
|
zend_bool cache_by_default; /* true if files should be cached unless filtered out */
|
|
/* false if files should only be cached if filtered in */
|
|
long file_update_protection; /* Age in seconds before a file is eligible to be cached - 0 to disable */
|
|
zend_bool enable_cli; /* Flag to override turning APC off for CLI */
|
|
long max_file_size; /* Maximum size of file, in bytes that APC will be allowed to cache */
|
|
zend_bool fpstat; /* true if fullpath includes should be stat'ed */
|
|
zend_bool canonicalize; /* true if relative paths should be canonicalized in no-stat mode */
|
|
zend_bool stat_ctime; /* true if ctime in addition to mtime should be checked */
|
|
zend_bool write_lock; /* true for a global write lock */
|
|
zend_bool slam_defense; /* true for user cache slam defense */
|
|
zend_bool report_autofilter; /* true for auto-filter warnings */
|
|
zend_bool include_once; /* Override the ZEND_INCLUDE_OR_EVAL opcode handler to avoid pointless fopen()s [still experimental] */
|
|
apc_optimize_function_t apc_optimize_function; /* optimizer function callback */
|
|
#ifdef MULTIPART_EVENT_FORMDATA
|
|
zend_bool rfc1867; /* Flag to enable rfc1867 handler */
|
|
char* rfc1867_prefix; /* Key prefix */
|
|
char* rfc1867_name; /* Name of hidden field to activate upload progress/key suffix */
|
|
double rfc1867_freq; /* Update frequency as percentage or bytes */
|
|
long rfc1867_ttl; /* TTL for rfc1867 entries */
|
|
apc_rfc1867_data rfc1867_data;/* Per-request data */
|
|
#endif
|
|
HashTable copied_zvals; /* my_copy recursion detection list */
|
|
zend_bool force_file_update; /* force files to be updated during apc_compile_file */
|
|
char canon_path[MAXPATHLEN]; /* canonical path for key data */
|
|
#ifdef APC_FILEHITS
|
|
zval *filehits; /* Files that came from the cache for this request */
|
|
#endif
|
|
zend_bool coredump_unmap; /* Trap signals that coredump and unmap shared memory */
|
|
apc_cache_t *current_cache; /* current cache being modified/read */
|
|
char *preload_path;
|
|
zend_bool file_md5; /* record md5 hash of files */
|
|
void *apc_bd_alloc_ptr; /* bindump alloc() ptr */
|
|
void *apc_bd_alloc_ubptr; /* bindump alloc() upper bound ptr */
|
|
HashTable apc_bd_alloc_list; /* bindump alloc() ptr list */
|
|
zend_bool use_request_time; /* use the SAPI request start time for TTL */
|
|
zend_bool lazy_functions; /* enable/disable lazy function loading */
|
|
HashTable *lazy_function_table; /* lazy function entry table */
|
|
zend_bool lazy_classes; /* enable/disable lazy class loading */
|
|
HashTable *lazy_class_table; /* lazy class entry table */
|
|
#ifdef ZEND_ENGINE_2_4
|
|
long shm_strings_buffer;
|
|
#endif
|
|
char *serializer_name; /* the serializer config option */
|
|
apc_serializer_t *serializer;/* the actual serializer in use */
|
|
HashTable *compiler_hook_func_table;
|
|
HashTable *compiler_hook_class_table;
|
|
int compile_nesting;
|
|
zend_bool enable_opcode_cache;
|
|
ZEND_END_MODULE_GLOBALS(apc)
|
|
|
|
/* (the following declaration is defined in php_apc.c) */
|
|
ZEND_EXTERN_MODULE_GLOBALS(apc)
|
|
|
|
#ifdef ZTS
|
|
# define APCG(v) TSRMG(apc_globals_id, zend_apc_globals *, v)
|
|
#else
|
|
# define APCG(v) (apc_globals.v)
|
|
#endif
|
|
|
|
/* True globals */
|
|
extern apc_cache_t* apc_cache; /* the global compiler cache */
|
|
extern apc_cache_t* apc_user_cache; /* the global user content cache */
|
|
extern void* apc_compiled_filters; /* compiled filters */
|
|
|
|
#endif
|
|
|
|
/*
|
|
* Local variables:
|
|
* tab-width: 4
|
|
* c-basic-offset: 4
|
|
* End:
|
|
* vim>600: expandtab sw=4 ts=4 sts=4 fdm=marker
|
|
* vim<600: expandtab sw=4 ts=4 sts=4
|
|
*/
|