GME
13
|
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 00017 #include "apr_private.h" 00018 #include "apr_thread_proc.h" 00019 #include "apr_file_io.h" 00020 00021 #ifndef THREAD_PROC_H 00022 #define THREAD_PROC_H 00023 00024 #define SHELL_PATH "cmd.exe" 00025 00026 struct apr_thread_t { 00027 apr_pool_t *pool; 00028 HANDLE td; 00029 apr_int32_t cancel; 00030 apr_int32_t cancel_how; 00031 void *data; 00032 apr_thread_start_t func; 00033 apr_status_t exitval; 00034 }; 00035 00036 struct apr_threadattr_t { 00037 apr_pool_t *pool; 00038 apr_int32_t detach; 00039 apr_size_t stacksize; 00040 }; 00041 00042 struct apr_threadkey_t { 00043 apr_pool_t *pool; 00044 DWORD key; 00045 }; 00046 00047 struct apr_procattr_t { 00048 apr_pool_t *pool; 00049 apr_file_t *parent_in; 00050 apr_file_t *child_in; 00051 apr_file_t *parent_out; 00052 apr_file_t *child_out; 00053 apr_file_t *parent_err; 00054 apr_file_t *child_err; 00055 char *currdir; 00056 apr_int32_t cmdtype; 00057 apr_int32_t detached; 00058 apr_child_errfn_t *errfn; 00059 apr_int32_t errchk; 00060 #ifndef _WIN32_WCE 00061 HANDLE user_token; 00062 LPSECURITY_ATTRIBUTES sa; 00063 LPVOID sd; 00064 #endif 00065 }; 00066 00067 struct apr_thread_once_t { 00068 long value; 00069 }; 00070 00071 extern apr_status_t apr_threadproc_init(apr_pool_t *pool); 00072 00073 #endif /* ! THREAD_PROC_H */ 00074