]> git.pond.sub.org Git - empserver/blobdiff - src/lib/lwp/lwpint.h
Update known contributors comments
[empserver] / src / lib / lwp / lwpint.h
index 12ce6ef7d1f3be1cc76ecf3d28899b4fd490d7f4..5ccd90ed87b806b8ec54e79cefba9f57c36cb82b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1994-2007, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1994-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *  Copyright (C) 1991-3 Stephen Crane
  *
  *  ---
  *
  *  lwpint.h: lwp internal structures
- * 
+ *
  *  Known contributors to this file:
- *     Markus Armbruster, 2004-2006
+ *     Markus Armbruster, 2004-2009
  */
 
 #ifndef LWPINT_H
 #define LWPINT_H
 
 #include <signal.h>
-#ifdef UCONTEXT
+#include <time.h>
 #include <ucontext.h>
-#else  /* !UCONTEXT */
-#include <setjmp.h>
-#endif /* !UCONTEXT */
 
 #include "misc.h"
 
 /* process control block.  do *not* change the position of context */
 struct lwpProc {
-#ifdef UCONTEXT
     ucontext_t context;                /* context structure */
-#else  /* !UCONTEXT */
-    jmp_buf context;           /* processor context area */
-#endif /* !UCONTEXT */
     void *sbtm;                        /* stack buffer attached to it */
     int size;                  /* size of stack buffer */
     char *ustack;              /* lowest usable stack address */
@@ -60,6 +53,7 @@ struct lwpProc {
     int pri;                   /* which scheduling queue we're on */
     time_t runtime;            /* time at which process is restarted */
     int fd;                    /* fd we're blocking on */
+    int fd_ready;              /* woken up because fd was ready */
     int argc;                  /* initial arguments */
     char **argv;
     void *ud;                  /* user data */
@@ -74,21 +68,12 @@ struct lwpQueue {
     struct lwpProc *tail;
 };
 
-/* semaphore */
-struct lwpSem {
-    int count;
-    struct lwpQueue q;
-    char *name;
-};
-
 #define LWP_REDZONE    1024    /* make this a multiple of 1024 */
 
 /* XXX Note that this assumes sizeof(int) == 4 */
 #define LWP_CHECKMARK  0x5a5a5a5a
 
-extern int LwpStackGrowsDown;
-
-int lwpNewContext(struct lwpProc *, int);
+int lwpNewContext(struct lwpProc *);
 void lwpSwitchContext(struct lwpProc *, struct lwpProc *);
 void lwpAddTail(struct lwpQueue *, struct lwpProc *);
 struct lwpProc *lwpGetFirst(struct lwpQueue *);
@@ -96,6 +81,7 @@ void lwpReady(struct lwpProc *);
 void lwpReschedule(void);
 void lwpEntryPoint(void);
 void lwpInitSelect(struct lwpProc *);
+void lwpWakeupSleep(void);
 void lwpSelect(void *);
 void lwpInitSigWait(sigset_t *);
 void lwpSigWakeup(void);