GRAYBYTE WORDPRESS FILE MANAGER3605

Server IP : 198.54.121.189 / Your IP : 216.73.216.34
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/include/apache2/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/include/apache2//ap_slotmem.h
/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef SLOTMEM_H
#define SLOTMEM_H

/* Memory handler for a shared memory divided in slot.
 */
/**
 * @file  ap_slotmem.h
 * @brief Memory Slot Extension Storage Module for Apache
 *
 * @defgroup MEM mem
 * @ingroup  APACHE_MODS
 * @{
 */

#include "httpd.h"
#include "http_config.h"
#include "http_log.h"
#include "ap_provider.h"

#include "apr.h"
#include "apr_strings.h"
#include "apr_pools.h"
#include "apr_shm.h"
#include "apr_global_mutex.h"
#include "apr_file_io.h"
#include "apr_md5.h"

#if APR_HAVE_UNISTD_H
#include <unistd.h>         /* for getpid() */
#endif

#ifdef __cplusplus
extern "C" {
#endif

#define AP_SLOTMEM_PROVIDER_GROUP "slotmem"
#define AP_SLOTMEM_PROVIDER_VERSION "0"

typedef unsigned int ap_slotmem_type_t;

/*
 * Values for ap_slotmem_type_t::
 *
 * AP_SLOTMEM_TYPE_PERSIST: For transitory providers, persist
 *    the data on the file-system
 *
 * AP_SLOTMEM_TYPE_NOTMPSAFE:
 *
 * AP_SLOTMEM_TYPE_PREALLOC: Access to slots require they be grabbed 1st
 *
 * AP_SLOTMEM_TYPE_CLEARINUSE: If persisting, clear 'inuse' array before
 *    storing
 */
#define AP_SLOTMEM_TYPE_PERSIST      (1 << 0)
#define AP_SLOTMEM_TYPE_NOTMPSAFE    (1 << 1)
#define AP_SLOTMEM_TYPE_PREGRAB      (1 << 2)
#define AP_SLOTMEM_TYPE_CLEARINUSE   (1 << 3)

typedef struct ap_slotmem_instance_t ap_slotmem_instance_t;

/**
 * callback function used for slotmem doall.
 * @param mem is the memory associated with a worker.
 * @param data is what is passed to slotmem.
 * @param pool is pool used
 * @return APR_SUCCESS if all went well
 */
typedef apr_status_t ap_slotmem_callback_fn_t(void* mem, void *data, apr_pool_t *pool);

struct ap_slotmem_provider_t {
    /*
     * Name of the provider method
     */
    const char *name;
    /**
     * call the callback on all worker slots
     * @param s ap_slotmem_instance_t to use.
     * @param funct callback function to call for each element.
     * @param data parameter for the callback function.
     * @param pool is pool used
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* doall)(ap_slotmem_instance_t *s, ap_slotmem_callback_fn_t *func, void *data, apr_pool_t *pool);
    /**
     * create a new slotmem with each item size is item_size.
     * This would create shared memory, basically.
     * @param inst where to store pointer to slotmem
     * @param name a key used for debugging and in mod_status output or allow another process to share this space.
     * @param item_size size of each item
     * @param item_num number of item to create.
     * @param type type of slotmem.
     * @param pool is pool used
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* create)(ap_slotmem_instance_t **inst, const char *name, apr_size_t item_size, unsigned int item_num, ap_slotmem_type_t type, apr_pool_t *pool);
    /**
     * attach to an existing slotmem.
     * This would attach to  shared memory, basically.
     * @param inst where to store pointer to slotmem
     * @param name a key used for debugging and in mod_status output or allow another process to share this space.
     * @param item_size size of each item
     * @param item_num max number of item.
     * @param pool is pool to memory allocate.
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* attach)(ap_slotmem_instance_t **inst, const char *name, apr_size_t *item_size, unsigned int *item_num, apr_pool_t *pool);
    /**
     * get the memory ptr associated with this worker slot.
     * @param s ap_slotmem_instance_t to use.
     * @param item_id item to return for 0 to item_num
     * @param mem address to store the pointer to the slot
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* dptr)(ap_slotmem_instance_t *s, unsigned int item_id, void**mem);
    /**
     * get/read the data associated with this worker slot.
     * @param s ap_slotmem_instance_t to use.
     * @param item_id item to return for 0 to item_num
     * @param dest address to store the data
     * @param dest_len length of dataset to retrieve
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* get)(ap_slotmem_instance_t *s, unsigned int item_id, unsigned char *dest, apr_size_t dest_len);
    /**
     * put/write the data associated with this worker slot.
     * @param s ap_slotmem_instance_t to use.
     * @param item_id item to return for 0 to item_num
     * @param src address of the data to store in the slot
     * @param src_len length of dataset to store in the slot
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* put)(ap_slotmem_instance_t *slot, unsigned int item_id, unsigned char *src, apr_size_t src_len);
    /**
     * return number of slots allocated for this entry.
     * @param s ap_slotmem_instance_t to use.
     * @return number of slots
     */
    unsigned int (* num_slots)(ap_slotmem_instance_t *s);
    /**
     * return number of free (not used) slots allocated for this entry.
     * Valid for slots which are AP_SLOTMEM_TYPE_PREGRAB as well as
     * any which use get/release.
     * @param s ap_slotmem_instance_t to use.
     * @return number of slots
     */
    unsigned int (* num_free_slots)(ap_slotmem_instance_t *s);
    /**
     * return slot size allocated for this entry.
     * @param s ap_slotmem_instance_t to use.
     * @return size of slot
     */
    apr_size_t (* slot_size)(ap_slotmem_instance_t *s);
    /**
     * grab (or alloc) a free slot
     * @param s ap_slotmem_instance_t to use.
     * @param item_id ptr to the available slot id and marked as in-use
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* grab)(ap_slotmem_instance_t *s, unsigned int *item_id);
    /**
     * release (or free) the slot associated with this item_id
     * @param s ap_slotmem_instance_t to use.
     * @param item_id slot id to free and mark as no longer in-use
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* release)(ap_slotmem_instance_t *s, unsigned int item_id);
    /**
     * forced grab (or alloc) a slot associated with this item_id
     * @param s ap_slotmem_instance_t to use.
     * @param item_id to the specified slot id and marked as in-use
     * @return APR_SUCCESS if all went well
     */
    apr_status_t (* fgrab)(ap_slotmem_instance_t *s, unsigned int item_id);
};

typedef struct ap_slotmem_provider_t ap_slotmem_provider_t;

#ifdef __cplusplus
}
#endif

#endif
/** @} */

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 24 2025 08:30:34
root / root
0755
.mmn
0.014 KB
June 04 2025 15:19:36
root / root
0644
ap_compat.h
1.05 KB
June 04 2025 15:19:33
root / root
0644
ap_config.h
6.451 KB
June 04 2025 15:19:33
root / root
0644
ap_config_auto.h
9.904 KB
June 04 2025 15:19:33
root / root
0644
ap_config_layout.h
2.521 KB
June 04 2025 15:19:37
root / root
0644
ap_expr.h
13.746 KB
June 04 2025 15:19:33
root / root
0644
ap_hooks.h
5.848 KB
June 04 2025 15:19:33
root / root
0644
ap_listen.h
5.692 KB
June 04 2025 15:19:33
root / root
0644
ap_mmn.h
39.327 KB
June 04 2025 15:19:33
root / root
0644
ap_mpm.h
10.512 KB
June 04 2025 15:19:33
root / root
0644
ap_provider.h
3.454 KB
June 04 2025 15:19:33
root / root
0644
ap_regex.h
11.138 KB
June 04 2025 15:19:33
root / root
0644
ap_regkey.h
8.968 KB
June 04 2025 15:19:34
root / root
0644
ap_release.h
3.07 KB
June 04 2025 15:19:34
root / root
0644
ap_slotmem.h
7.065 KB
June 04 2025 15:19:34
root / root
0644
ap_socache.h
9.18 KB
June 04 2025 15:19:34
root / root
0644
apache_noprobes.h
15.594 KB
June 04 2025 15:19:34
root / root
0644
cache_common.h
1.97 KB
June 04 2025 15:19:35
root / root
0644
heartbeat.h
1.558 KB
June 04 2025 15:19:34
root / root
0644
http_config.h
56.365 KB
June 04 2025 15:19:34
root / root
0644
http_connection.h
6.972 KB
June 04 2025 15:19:34
root / root
0644
http_core.h
36.396 KB
June 04 2025 15:19:34
root / root
0644
http_log.h
36.007 KB
June 04 2025 15:19:34
root / root
0644
http_main.h
3.169 KB
June 04 2025 15:19:34
root / root
0644
http_protocol.h
41.405 KB
June 04 2025 15:19:34
root / root
0644
http_request.h
25.718 KB
June 04 2025 15:19:34
root / root
0644
http_ssl.h
14.624 KB
June 04 2025 15:19:34
root / root
0644
http_vhost.h
4.485 KB
June 04 2025 15:19:34
root / root
0644
httpd.h
94.512 KB
June 04 2025 15:19:34
root / root
0644
mod_auth.h
4.417 KB
June 04 2025 15:19:34
root / root
0644
mod_cache.h
7.086 KB
June 04 2025 15:19:35
root / root
0644
mod_cgi.h
2.438 KB
June 04 2025 15:19:35
root / root
0644
mod_core.h
3.326 KB
June 04 2025 15:19:34
root / root
0644
mod_dav.h
97.686 KB
June 04 2025 15:19:35
root / root
0644
mod_dbd.h
4.057 KB
June 04 2025 15:19:35
root / root
0644
mod_http2.h
4.586 KB
June 04 2025 15:19:35
root / root
0644
mod_include.h
3.891 KB
June 04 2025 15:19:35
root / root
0644
mod_log_config.h
2.427 KB
June 04 2025 15:19:35
root / root
0644
mod_proxy.h
65.796 KB
June 04 2025 15:19:35
root / root
0644
mod_request.h
1.59 KB
June 04 2025 15:19:34
root / root
0644
mod_rewrite.h
1.364 KB
June 04 2025 15:19:35
root / root
0644
mod_session.h
6.609 KB
June 04 2025 15:19:35
root / root
0644
mod_so.h
1.197 KB
June 04 2025 15:19:35
root / root
0644
mod_ssl.h
4.872 KB
June 04 2025 15:19:35
root / root
0644
mod_ssl_openssl.h
4.796 KB
June 04 2025 15:19:35
root / root
0644
mod_status.h
2.384 KB
June 04 2025 15:19:35
root / root
0644
mod_unixd.h
1.088 KB
June 04 2025 15:19:35
root / root
0644
mod_watchdog.h
7.342 KB
June 04 2025 15:19:35
root / root
0644
mod_xml2enc.h
2.253 KB
June 04 2025 15:19:35
root / root
0644
mpm_common.h
16.921 KB
June 04 2025 15:19:34
root / root
0644
os.h
1.631 KB
June 04 2025 15:19:35
root / root
0644
scoreboard.h
9.813 KB
June 04 2025 15:19:34
root / root
0644
unixd.h
4.137 KB
June 04 2025 15:19:35
root / root
0644
util_cfgtree.h
3.079 KB
June 04 2025 15:19:34
root / root
0644
util_charset.h
2.214 KB
June 04 2025 15:19:34
root / root
0644
util_cookies.h
4.845 KB
June 04 2025 15:19:34
root / root
0644
util_ebcdic.h
2.688 KB
June 04 2025 15:19:34
root / root
0644
util_fcgi.h
9.75 KB
June 04 2025 15:19:34
root / root
0644
util_filter.h
25.839 KB
June 04 2025 15:19:34
root / root
0644
util_ldap.h
17.944 KB
June 04 2025 15:19:35
root / root
0644
util_md5.h
2.116 KB
June 04 2025 15:19:35
root / root
0644
util_mutex.h
9.074 KB
June 04 2025 15:19:35
root / root
0644
util_script.h
9.629 KB
June 04 2025 15:19:35
root / root
0644
util_time.h
4.101 KB
June 04 2025 15:19:35
root / root
0644
util_varbuf.h
8.092 KB
June 04 2025 15:19:35
root / root
0644
util_xml.h
1.31 KB
June 04 2025 15:19:35
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF