]> git.pond.sub.org Git - empserver/blobdiff - src/lib/lwp/lwpint.h
Streamline copyright notices. Clearly document Stephen Crane's in
[empserver] / src / lib / lwp / lwpint.h
index 3786699f3a5d5c7f024fdce1d6bbc3b0589af033..29a2aaa1883de3b31a06ec816533a9ecee75d901 100644 (file)
@@ -1,28 +1,39 @@
 /*
- * lwpint.h -- lwp internal structures
+ *  Empire - A multi-player, client/server Internet based war game.
+ *  Copyright (C) 1994-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *                           Ken Stevens, Steve McClure
+ *  Copyright (C) 1991-3 Stephen Crane
  *
- * Copyright (C) 1991-3 Stephen Crane.
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- * 
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ *  ---
+ *
+ *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
+ *  related information and legal notices. It is expected that any future
+ *  projects/authors will amend these files as needed.
  *
- * author: Stephen Crane, (jsc@doc.ic.ac.uk), Department of Computing,
- * Imperial College of Science, Technology and Medicine, 180 Queen's
- * Gate, London SW7 2BZ, England.
+ *  ---
+ *
+ *  lwpint.h: lwp internal structures
+ * 
+ *  Known contributors to this file:
+ *     Markus Armbruster, 2004-2006
  */
-#ifndef _LWPINT_H
-#define _LWPINT_H
+
+#ifndef LWPINT_H
+#define LWPINT_H
 
 #ifdef UCONTEXT
 #include <ucontext.h>
@@ -73,50 +84,15 @@ struct lwpSem {
     char *name;
 };
 
-#ifdef UCONTEXT
-void lwpInitContext(struct lwpProc *, stack_t *);
-#define lwpSave(x)    getcontext(&(x))
-#define lwpRestore(x) setcontext(&(x))
-#else  /* !UCONTEXT */
-#if defined(hpux) && !defined(hpc)
-void lwpInitContext(volatile struct lwpProc * volatile, void *);
-#else
-void lwpInitContext(struct lwpProc *, void *);
-#endif
-#if defined(hpc)
-int lwpSave(jmp_buf);
-#define lwpRestore(x)  longjmp(x, 1)
-#elif defined(hpux) || defined(AIX32) || defined(ALPHA)
-int lwpSave(jmp_buf);
-void lwpRestore(jmp_buf);
-#elif defined(SUN4)
-#define        lwpSave(x)      _setjmp(x)
-#define lwpRestore(x)  _longjmp(x, 1)
-#else
-#define        lwpSave(x)      setjmp(x)
-#define lwpRestore(x)  longjmp(x, 1)
-#endif
-#endif /* !UCONTEXT */
-
-#ifdef AIX32
-/* AIX needs 12 extra bytes above the stack; we add it here */
-#define        LWP_EXTRASTACK  3*sizeof(long)
-#else
-#define LWP_EXTRASTACK 0
-#endif
-
 #define LWP_REDZONE    1024    /* make this a multiple of 1024 */
 
 /* XXX Note that this assumes sizeof(long) == 4 */
 #define LWP_CHECKMARK  0x5a5a5a5aL
 
-#ifdef hpux
-#define STKALIGN 64
-#else
-#define STKALIGN sizeof(double)
-#endif
+extern int LwpStackGrowsDown;
 
-/* internal routines */
+int lwpNewContext(struct lwpProc *, int);
+void lwpSwitchContext(struct lwpProc *, struct lwpProc *);
 void lwpAddTail(struct lwpQueue *, struct lwpProc *);
 struct lwpProc *lwpGetFirst(struct lwpQueue *);
 void lwpReady(struct lwpProc *);
@@ -125,4 +101,4 @@ void lwpEntryPoint(void);
 void lwpInitSelect(struct lwpProc * self);
 void lwpDestroy(struct lwpProc * proc);
 
-#endif /* _LWP_H */
+#endif