18#include "apr_arch_file_io.h"
26#if APR_USE_SHMEM_MMAP_SHM
38static unsigned int rshash (
const char *
p) {
40 unsigned int b = 378551;
41 unsigned int a = 63689;
70#if APR_USE_SHMEM_SHMGET
86 if (
m->filename ==
NULL) {
87#if APR_USE_SHMEM_MMAP_ZERO || APR_USE_SHMEM_MMAP_ANON
88 if (
munmap(
m->base,
m->realsize) == -1) {
92#elif APR_USE_SHMEM_SHMGET_ANON
93 if (
shmdt(
m->base) == -1) {
104#if APR_USE_SHMEM_MMAP_TMP
105 if (
munmap(
m->base,
m->realsize) == -1) {
114#elif APR_USE_SHMEM_MMAP_SHM
115 if (
munmap(
m->base,
m->realsize) == -1) {
122#elif APR_USE_SHMEM_SHMGET
129 if (
shmdt(
m->base) == -1) {
151#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
156#if APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM || \
157 APR_USE_SHMEM_MMAP_ZERO
160#if APR_USE_SHMEM_SHMGET
163#if APR_USE_SHMEM_MMAP_ZERO || APR_USE_SHMEM_SHMGET || \
164 APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM
170#if APR_USE_SHMEM_MMAP_ZERO || APR_USE_SHMEM_MMAP_ANON
178#if APR_USE_SHMEM_MMAP_ZERO
210#elif APR_USE_SHMEM_MMAP_ANON
228#elif APR_USE_SHMEM_SHMGET_ANON
279#if APR_USE_SHMEM_MMAP_SHM
282#if APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM
289#if APR_USE_SHMEM_MMAP_TMP
320#if APR_USE_SHMEM_MMAP_SHM
359#elif APR_USE_SHMEM_SHMGET
436#if APR_USE_SHMEM_SHMGET
443#if APR_USE_SHMEM_MMAP_TMP
445#elif APR_USE_SHMEM_MMAP_SHM
451#elif APR_USE_SHMEM_SHMGET
511 if (
m->filename ==
NULL) {
516#if APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM
517 if (
munmap(
m->base,
m->realsize) == -1) {
521#elif APR_USE_SHMEM_SHMGET
522 if (
shmdt(
m->base) == -1) {
542#if APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM
552#if APR_USE_SHMEM_MMAP_SHM
567#elif APR_USE_SHMEM_MMAP_TMP
615#elif APR_USE_SHMEM_SHMGET
693#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
708#elif APR_USE_SHMEM_MMAP_SHM && !defined(DARWIN)
738#elif APR_USE_SHMEM_MMAP_TMP
APR Miscellaneous library routines.
apr_fileperms_t apr_uid_t uid
apr_fileperms_t apr_uid_t apr_gid_t gid
apr_bucket apr_bucket_brigade * a
const char apr_ssize_t int flags
const char apr_ssize_t slen
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
const char apr_fileperms_t perms
const char apr_file_t * file
#define APR_ALIGN_DEFAULT(size)
const apr_hash_t const apr_hash_t * h2
#define APR_PERMS_SET_IMPLEMENT(type)
#define APR_POOL_IMPLEMENT_ACCESSOR(type)
apr_size_t const char * filename
mode_t apr_unix_perms2mode(apr_fileperms_t perms)
apr_status_t apr_file_trunc(apr_file_t *fp, apr_off_t offset)
static apr_status_t shm_cleanup_owner(void *m_)
static apr_status_t shm_cleanup_attach(void *m_)