/usr/src/redhat/BUILD/httpd-2.2.3/server/mpm/winnt/mpm_winnt.h

説明を見る。
00001 /* Licensed to the Apache Software Foundation (ASF) under one or more
00002  * contributor license agreements.  See the NOTICE file distributed with
00003  * this work for additional information regarding copyright ownership.
00004  * The ASF licenses this file to You under the Apache License, Version 2.0
00005  * (the "License"); you may not use this file except in compliance with
00006  * the License.  You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00025 #ifndef APACHE_MPM_WINNT_H
00026 #define APACHE_MPM_WINNT_H
00027 
00028 #include "ap_listen.h"
00029 
00030 /* From service.c: */
00031 
00032 #define SERVICE_APACHE_RESTART 128
00033 
00034 #ifndef AP_DEFAULT_SERVICE_NAME
00035 #define AP_DEFAULT_SERVICE_NAME "Apache2"
00036 #endif
00037 
00038 #define SERVICECONFIG9X "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices"
00039 #define SERVICECONFIG "System\\CurrentControlSet\\Services\\%s"
00040 #define SERVICEPARAMS "System\\CurrentControlSet\\Services\\%s\\Parameters"
00041 
00042 apr_status_t mpm_service_set_name(apr_pool_t *p, const char **display_name, 
00043                                                  const char *set_name);
00044 apr_status_t mpm_merge_service_args(apr_pool_t *p, apr_array_header_t *args, 
00045                                    int fixed_args);
00046 
00047 apr_status_t mpm_service_to_start(const char **display_name, apr_pool_t *p);
00048 apr_status_t mpm_service_started(void);
00049 apr_status_t mpm_service_install(apr_pool_t *ptemp, int argc, 
00050                                 char const* const* argv, int reconfig);
00051 apr_status_t mpm_service_uninstall(void);
00052 
00053 apr_status_t mpm_service_start(apr_pool_t *ptemp, int argc, 
00054                               char const* const* argv);
00055 
00056 void mpm_signal_service(apr_pool_t *ptemp, int signal);
00057 
00058 void mpm_service_stopping(void);
00059 
00060 void mpm_start_console_handler(void);
00061 void mpm_start_child_console_handler(void);
00062 
00063 /* From nt_eventlog.c: */
00064 
00065 void mpm_nt_eventlog_stderr_open(char *display_name, apr_pool_t *p);
00066 void mpm_nt_eventlog_stderr_flush(void);
00067 
00068 /* From winnt.c: */
00069 
00070 extern int use_acceptex;
00071 extern int winnt_mpm_state;
00072 extern OSVERSIONINFO osver;
00073 extern void clean_child_exit(int);
00074 
00075 void setup_signal_names(char *prefix);
00076 
00077 typedef enum {
00078     SIGNAL_PARENT_SHUTDOWN,
00079     SIGNAL_PARENT_RESTART,
00080     SIGNAL_PARENT_RESTART_GRACEFUL
00081 } ap_signal_parent_e;
00082 AP_DECLARE(void) ap_signal_parent(ap_signal_parent_e type);
00083 
00084 /*
00085  * The Windoes MPM uses a queue of completion contexts that it passes
00086  * between the accept threads and the worker threads. Declare the
00087  * functions to access the queue and the structures passed on the
00088  * queue in the header file to enable modules to access them
00089  * if necessary. The queue resides in the MPM.
00090  */
00091 #ifdef CONTAINING_RECORD
00092 #undef CONTAINING_RECORD
00093 #endif
00094 #define CONTAINING_RECORD(address, type, field) ((type *)( \
00095                                                   (PCHAR)(address) - \
00096                                                   (PCHAR)(&((type *)0)->field)))
00097 #if APR_HAVE_IPV6
00098 #define PADDED_ADDR_SIZE (sizeof(SOCKADDR_IN6)+16)
00099 #else
00100 #define PADDED_ADDR_SIZE (sizeof(SOCKADDR_IN)+16)
00101 #endif
00102 
00103 typedef struct CompContext {
00104     struct CompContext *next;
00105     OVERLAPPED Overlapped;
00106     apr_socket_t *sock;
00107     SOCKET accept_socket;
00108     char buff[2*PADDED_ADDR_SIZE];
00109     struct sockaddr *sa_server;
00110     int sa_server_len;
00111     struct sockaddr *sa_client;
00112     int sa_client_len;
00113     apr_pool_t *ptrans;
00114     apr_bucket_alloc_t *ba;
00115     short socket_family;
00116 } COMP_CONTEXT, *PCOMP_CONTEXT;
00117 
00118 typedef enum {
00119     IOCP_CONNECTION_ACCEPTED = 1,
00120     IOCP_WAIT_FOR_RECEIVE = 2,
00121     IOCP_WAIT_FOR_TRANSMITFILE = 3,
00122     IOCP_SHUTDOWN = 4
00123 } io_state_e;
00124 
00125 PCOMP_CONTEXT mpm_get_completion_context(void);
00126 void          mpm_recycle_completion_context(PCOMP_CONTEXT pCompContext);
00127 apr_status_t  mpm_post_completion_context(PCOMP_CONTEXT pCompContext, io_state_e state);
00128 void hold_console_open_on_error(void);
00129 #endif /* APACHE_MPM_WINNT_H */
00130 

Apacheに対してSun Jul 19 22:05:23 2009に生成されました。  doxygen 1.4.7