Merge origin/netpush (networking code) (XCC)
[akaros.git] / kern / include / kthread.h
index b179548..98e96a7 100644 (file)
 
 struct proc;
 struct kthread;
+struct semaphore;
+struct semaphore_entry;
 TAILQ_HEAD(kthread_tailq, kthread);
+LIST_HEAD(semaphore_list, semaphore_entry);
+
 
 /* This captures the essence of a kernel context that we want to suspend.  When
  * a kthread is running, we make sure its stacktop is the default kernel stack,
@@ -45,6 +49,13 @@ struct cond_var {
        bool                                            irq_okay;
 };
 
+/* TODO: consider building this into struct semaphore */
+struct semaphore_entry {
+       struct semaphore sem;
+       int fd;
+       LIST_ENTRY(semaphore_entry) link;
+};
+
 void kthread_init(void);
 void restart_kthread(struct kthread *kthread);
 void kthread_runnable(struct kthread *kthread);