Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

amiga.h

00001 #ifdef AMIGA
00002 #ifndef AMIGA_H_INCLUDED
00003 #define AMIGA_H_INCLUDED
00004 #define AMIGA_H_VERSION "$Id: amiga.h,v 2.0 2002/06/04 14:34:21 jongfoster Exp $"
00005 /* ******************************************************************
00006  * $Source: /cvsroot/ijbswa/current/src/amiga.h,v $
00007  * ******************************************************************
00008  *
00009  * Written by and Copyright (C) 2001 the SourceForge
00010  * Privoxy team. http://www.privoxy.org/
00011  * 
00012  * This program is free software; you can redistribute it
00013  * and/or modify it under the terms of the GNU General
00014  * Public License as published by the Free Software
00015  * Foundation; either version 2 of the License, or (at
00016  * your option) any later version.
00017  * 
00018  * This program is distributed in the hope that it will
00019  * be useful, but WITHOUT ANY WARRANTY; without even the
00020  * implied warranty of MERCHANTABILITY or FITNESS FOR A
00021  * PARTICULAR PURPOSE.  See the GNU General Public
00022  * License for more details.
00023  * 
00024  * The GNU General Public License should be included with
00025  * this file.  If not, you can view it at
00026  * http://www.gnu.org/copyleft/gpl.html
00027  * or write to the Free Software Foundation, Inc., 59
00028  * Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00029  * 
00030  * *****************************************************************/
00031 /**
00032  * @file
00033  *
00034  * Amiga-specific declarations.
00035  * 
00036  *
00037  * $Log: amiga.h,v $
00038  * Revision 2.0  2002/06/04 14:34:21  jongfoster
00039  * Moving source files to src/
00040  * 
00041  * Revision 1.9  2002/03/26 22:29:54  swa
00042  * we have a new homepage!
00043  * 
00044  * Revision 1.8  2002/03/24 13:25:43  swa
00045  * name change related issues
00046  * 
00047  * Revision 1.7  2002/03/03 09:18:03  joergs
00048  * Made jumbjuster work on AmigaOS again.
00049  * 
00050  * Revision 1.6  2001/10/13 12:46:08  joergs
00051  * Added #undef EINTR to avoid warnings
00052  * 
00053  * Revision 1.5  2001/07/29 18:43:08  jongfoster
00054  * Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
00055  * ANSI C rules.
00056  * 
00057  * Revision 1.4  2001/05/29 20:05:06  joergs
00058  * Fixed exit() macro not exiting if called before InitAmiga()
00059  * (junkbuster --help and --version).
00060  * 
00061  * Revision 1.3  2001/05/25 21:53:27  jongfoster
00062  * Fixing indentation
00063  * 
00064  * Revision 1.2  2001/05/23 00:13:58  joergs
00065  * AmigaOS support fixed.
00066  * 
00067  * Revision 1.1.1.1  2001/05/15 13:58:46  oes
00068  * Initial import of version 2.9.3 source tree
00069  * 
00070  * 
00071  */
00072 /* *****************************************************************/
00073 
00074 
00075 #define _KERNEL
00076 #include <sys/socket.h>
00077 #undef _KERNEL
00078 
00079 #define __NOLIBBASE__
00080 #include <proto/socket.h>
00081 #undef __NOLIBBASE__
00082 
00083 #define __CONSTLIBBASEDECL__ const
00084 #define DEVICES_TIMER_H
00085 #include <proto/exec.h>
00086 #include <exec/tasks.h>
00087 #include <proto/dos.h>
00088 #include <dos/dostags.h>
00089 
00090 struct UserData
00091 {
00092    struct Library *sb;
00093    int eno;
00094 };
00095 
00096 #define SocketBase ((struct Library *)(((struct UserData *)(FindTask(NULL)->tc_UserData))->sb))
00097 #define errno (((struct UserData *)(FindTask(NULL)->tc_UserData))->eno)
00098 #define select(a,b,c,d,e) WaitSelect(a,b,c,d,e,NULL)
00099 #define inet_ntoa(x) Inet_NtoA(x.s_addr)
00100 
00101 extern int childs;
00102 extern struct Task *main_task;
00103 
00104 void InitAmiga(void);
00105 void amiga_exit(void);
00106 void __memCleanUp(void);
00107 __saveds ULONG server_thread(void);
00108 
00109 #define exit(x)                                             \
00110 {                                                           \
00111    if(main_task)                                            \
00112    {                                                        \
00113       if(main_task == FindTask(NULL))                       \
00114       {                                                     \
00115          while(childs) Delay(10*TICKS_PER_SECOND); exit(x); \
00116       }                                                     \
00117       else                                                  \
00118       {                                                     \
00119          CloseLibrary(SocketBase);                          \
00120          childs--;                                          \
00121          RemTask(NULL);                                     \
00122       }                                                     \
00123    }                                                        \
00124    else                                                     \
00125    {                                                        \
00126       exit(x);                                              \
00127    }                                                        \
00128 }
00129 
00130 #undef EINTR
00131 #define EINTR 0
00132 
00133 #endif /* ndef AMIGA_H_INCLUDED */
00134 #endif /* def AMIGA */

Generated on Tue Jun 4 18:54:48 2002 for Privoxy 3.1.1 by doxygen1.2.15