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