remove user junkbuster after de-installation.
[privoxy.git] / amiga.h
1 #ifdef AMIGA
2 #ifndef AMIGA_H_INCLUDED
3 #define AMIGA_H_INCLUDED
4 #define AMIGA_H_VERSION "$Id: amiga.h,v 1.6 2001/10/13 12:46:08 joergs Exp $"
5 /*********************************************************************
6  *
7  * File        :  $Source: /cvsroot/ijbswa/current/amiga.h,v $
8  *
9  * Purpose     :  Amiga-specific declarations.
10  *
11  * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
12  *                IJBSWA team.  http://ijbswa.sourceforge.net
13  *
14  *                This program is free software; you can redistribute it 
15  *                and/or modify it under the terms of the GNU General
16  *                Public License as published by the Free Software
17  *                Foundation; either version 2 of the License, or (at
18  *                your option) any later version.
19  *
20  *                This program is distributed in the hope that it will
21  *                be useful, but WITHOUT ANY WARRANTY; without even the
22  *                implied warranty of MERCHANTABILITY or FITNESS FOR A
23  *                PARTICULAR PURPOSE.  See the GNU General Public
24  *                License for more details.
25  *
26  *                The GNU General Public License should be included with
27  *                this file.  If not, you can view it at
28  *                http://www.gnu.org/copyleft/gpl.html
29  *                or write to the Free Software Foundation, Inc., 59
30  *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
31  *
32  * Revisions   :
33  *    $Log: amiga.h,v $
34  *    Revision 1.6  2001/10/13 12:46:08  joergs
35  *    Added #undef EINTR to avoid warnings
36  *
37  *    Revision 1.5  2001/07/29 18:43:08  jongfoster
38  *    Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
39  *    ANSI C rules.
40  *
41  *    Revision 1.4  2001/05/29 20:05:06  joergs
42  *    Fixed exit() macro not exiting if called before InitAmiga()
43  *    (junkbuster --help and --version).
44  *
45  *    Revision 1.3  2001/05/25 21:53:27  jongfoster
46  *    Fixing indentation
47  *
48  *    Revision 1.2  2001/05/23 00:13:58  joergs
49  *    AmigaOS support fixed.
50  *
51  *    Revision 1.1.1.1  2001/05/15 13:58:46  oes
52  *    Initial import of version 2.9.3 source tree
53  *
54  *
55  *********************************************************************/
56 \f
57
58 #define _KERNEL
59 #include <sys/socket.h>
60 #undef _KERNEL
61
62 #define __NOLIBBASE__
63 #include <proto/socket.h>
64 #undef __NOLIBBASE__
65
66 #define __CONSTLIBBASEDECL__ const
67 #define DEVICES_TIMER_H
68 #include <proto/exec.h>
69 #include <exec/tasks.h>
70 #include <proto/dos.h>
71 #include <dos/dostags.h>
72
73 struct UserData
74 {
75    struct Library *sb;
76    int eno;
77 };
78
79 #define SocketBase ((struct Library *)(((struct UserData *)(FindTask(NULL)->tc_UserData))->sb))
80 #define errno (((struct UserData *)(FindTask(NULL)->tc_UserData))->eno)
81 #define select(a,b,c,d,e) WaitSelect(a,b,c,d,e,NULL)
82 #define inet_ntoa(x) Inet_NtoA(x.s_addr)
83
84 extern int childs;
85 extern struct Task *main_task;
86
87 void InitAmiga(void);
88 void amiga_exit(void);
89 void __memCleanUp(void);
90 __saveds ULONG server_thread(void);
91
92 #define exit(x)                                             \
93 {                                                           \
94    if(main_task)                                            \
95    {                                                        \
96       if(main_task == FindTask(NULL))                       \
97       {                                                     \
98          while(childs) Delay(10*TICKS_PER_SECOND); exit(x); \
99       }                                                     \
100       else                                                  \
101       {                                                     \
102          CloseLibrary(SocketBase);                          \
103          childs--;                                          \
104          RemTask(NULL);                                     \
105       }                                                     \
106    }                                                        \
107    else                                                     \
108    {                                                        \
109       exit(x);                                              \
110    }                                                        \
111 }
112
113 #undef EINTR
114 #define EINTR 0
115
116 #endif /* ndef AMIGA_H_INCLUDED */
117 #endif /* def AMIGA */