1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "apr_thread_proc.h" 18#include "apr_file_io.h" 19 20#ifndef THREAD_PROC_H 21#define THREAD_PROC_H 22 23#define APR_THREADATTR_DETACHED 1 24 25#define SHELL_PATH "cmd.exe" 26#define APR_THREAD_STACKSIZE 65536 27 28struct apr_threadattr_t { 29 apr_pool_t *pool; 30 unsigned long attr; 31 apr_size_t stacksize; 32}; 33 34struct apr_thread_t { 35 apr_pool_t *pool; 36 struct apr_threadattr_t *attr; 37 unsigned long tid; 38 apr_thread_start_t func; 39 void *data; 40 apr_status_t exitval; 41}; 42 43struct apr_threadkey_t { 44 apr_pool_t *pool; 45 unsigned long *key; 46}; 47 48struct apr_procattr_t { 49 apr_pool_t *pool; 50 apr_file_t *parent_in; 51 apr_file_t *child_in; 52 apr_file_t *parent_out; 53 apr_file_t *child_out; 54 apr_file_t *parent_err; 55 apr_file_t *child_err; 56 char *currdir; 57 apr_int32_t cmdtype; 58 apr_int32_t detached; 59}; 60 61struct apr_thread_once_t { 62 unsigned long sem; 63 char hit; 64}; 65 66#endif /* ! THREAD_PROC_H */ 67 68