summaryrefslogtreecommitdiffstats
path: root/rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h
diff options
context:
space:
mode:
authorhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 01:45:08 -0500
committerhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 01:45:08 -0500
commite8ec7aa8e38a93f5b034ac74cebce5de23710317 (patch)
treeaa031937bf856c1f8d6ad7877b8d2cb0224da5ef /rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h
parentcc40af334e619bb549038238507407866f774f8f (diff)
upload http
JIRA: BOTTLENECK-10 Change-Id: I7598427ff904df438ce77c2819ee48ac75ffa8da Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h')
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h130
1 files changed, 130 insertions, 0 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h b/rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h
new file mode 100644
index 00000000..5f4b5acc
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr/include/arch/unix/apr_arch_proc_mutex.h
@@ -0,0 +1,130 @@
+/* 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 PROC_MUTEX_H
+#define PROC_MUTEX_H
+
+#include "apr.h"
+#include "apr_private.h"
+#include "apr_general.h"
+#include "apr_lib.h"
+#include "apr_proc_mutex.h"
+#include "apr_pools.h"
+#include "apr_portable.h"
+#include "apr_file_io.h"
+#include "apr_arch_file_io.h"
+
+/* System headers required by Locks library */
+#if APR_HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if APR_HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#if APR_HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#ifdef HAVE_SYS_IPC_H
+#include <sys/ipc.h>
+#endif
+#ifdef HAVE_SYS_SEM_H
+#include <sys/sem.h>
+#endif
+#ifdef HAVE_SYS_FILE_H
+#include <sys/file.h>
+#endif
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if APR_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if APR_HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+#if APR_HAVE_PTHREAD_H
+#include <pthread.h>
+#endif
+#if APR_HAVE_SEMAPHORE_H
+#include <semaphore.h>
+#endif
+/* End System Headers */
+
+struct apr_proc_mutex_unix_lock_methods_t {
+ unsigned int flags;
+ apr_status_t (*create)(apr_proc_mutex_t *, const char *);
+ apr_status_t (*acquire)(apr_proc_mutex_t *);
+ apr_status_t (*tryacquire)(apr_proc_mutex_t *);
+ apr_status_t (*release)(apr_proc_mutex_t *);
+ apr_status_t (*cleanup)(void *);
+ apr_status_t (*child_init)(apr_proc_mutex_t **, apr_pool_t *, const char *);
+ const char *name;
+};
+typedef struct apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_lock_methods_t;
+
+/* bit values for flags field in apr_unix_lock_methods_t */
+#define APR_PROCESS_LOCK_MECH_IS_GLOBAL 1
+
+#if APR_HAS_POSIXSEM_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_posix_methods;
+#endif
+#if APR_HAS_SYSVSEM_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_sysv_methods;
+#endif
+#if APR_HAS_FCNTL_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_fcntl_methods;
+#endif
+#if APR_HAS_FLOCK_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_flock_methods;
+#endif
+#if APR_HAS_PROC_PTHREAD_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_proc_pthread_methods;
+#endif
+#if APR_HAS_RWLOCK_SERIALIZE
+extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_rwlock_methods;
+#endif
+
+
+#if !APR_HAVE_UNION_SEMUN && defined(APR_HAS_SYSVSEM_SERIALIZE)
+union semun {
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+};
+#endif
+
+struct apr_proc_mutex_t {
+ apr_pool_t *pool;
+ const apr_proc_mutex_unix_lock_methods_t *meth;
+ const apr_proc_mutex_unix_lock_methods_t *inter_meth;
+ int curr_locked;
+ char *fname;
+#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || APR_HAS_FLOCK_SERIALIZE
+ apr_file_t *interproc;
+#endif
+#if APR_HAS_PROC_PTHREAD_SERIALIZE
+ pthread_mutex_t *pthread_interproc;
+#endif
+};
+
+void apr_proc_mutex_unix_setup_lock(void);
+
+#endif /* PROC_MUTEX_H */
+