upload http
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / os / tpf / os.h
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 #ifndef APACHE_OS_H
18 #define APACHE_OS_H
19
20 #define PLATFORM "TPF"
21
22 #ifdef errno
23 #undef errno
24 #endif
25
26 /*
27  * This file in included in all Apache source code. It contains definitions
28  * of facilities available on _this_ operating system (HAVE_* macros),
29  * and prototypes of OS specific functions defined in os.c or os-inline.c
30  */
31
32 #include "apr.h"
33 #include "ap_config.h"
34 #include <strings.h>
35 #ifndef __strings_h
36
37 #define FD_SETSIZE    2048 
38  
39 typedef long fd_mask;
40
41 #define NBBY    8    /* number of bits in a byte */
42 #define NFDBITS (sizeof(fd_mask) * NBBY)
43 #define  howmany(x, y)  (((x)+((y)-1))/(y))
44
45 typedef struct fd_set { 
46         fd_mask fds_bits [howmany(FD_SETSIZE, NFDBITS)];
47 } fd_set; 
48
49 #define FD_CLR(n, p)((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
50 #define FD_ISSET(n, p)((p)->fds_bits[(n)/NFDBITS] & (1 <<((n) % NFDBITS)))
51 #define  FD_ZERO(p)   memset((char *)(p), 0, sizeof(*(p)))
52 #endif
53     
54 #ifdef FD_SET
55 #undef FD_SET
56 #define FD_SET(n, p) (0)
57 #endif
58
59 #include <i$netd.h>
60 struct apache_input {
61     INETD_SERVER_INPUT  inetd_server;
62     void                *scoreboard_heap;   /* scoreboard system heap address */
63     int                 scoreboard_fd;      /* scoreboard file descriptor */
64     int                 slot;               /* child number */
65     int                 generation;         /* server generation number */
66     int                 listeners[10];
67     time_t              restart_time;
68 };
69
70 typedef struct apache_input APACHE_TPF_INPUT;
71
72 extern int tpf_child;
73
74 struct server_rec;
75 pid_t os_fork(struct server_rec *s, int slot);
76 int os_check_server(char *server);
77
78 extern char *ap_server_argv0;
79 extern int scoreboard_fd;
80 #include <signal.h>
81 #ifndef SIGPIPE
82 #define SIGPIPE 14
83 #endif
84 #ifdef NSIG
85 #undef NSIG
86 #endif
87 #endif /*! APACHE_OS_H*/