Added fw_task to thread structure.
authorJens Krieg <jkrieg@mailbox.tu-berlin.de>
Tue, 17 Dec 2013 09:44:27 +0000 (10:44 +0100)
committerJens Krieg <jkrieg@mailbox.tu-berlin.de>
Tue, 17 Dec 2013 09:44:27 +0000 (10:44 +0100)
sys/kern/sched_ule.c
sys/sys/proc.h

index 3e3d8d5..2bf6c3c 100644 (file)
@@ -64,6 +64,10 @@ __FBSDID("$FreeBSD$");
 #include <sys/cpuset.h>
 #include <sys/sbuf.h>
 
+
+#include <fw.h>
+
+
 #ifdef HWPMC_HOOKS
 #include <sys/pmckern.h>
 #endif
@@ -1614,6 +1618,8 @@ schedinit(void)
        td_sched0.ts_ltick = ticks;
        td_sched0.ts_ftick = ticks;
        td_sched0.ts_slice = sched_slice;
+
+       fw_init();
 }
 
 /*
@@ -2077,6 +2083,7 @@ sched_fork_thread(struct thread *td, struct thread *child)
 {
        struct td_sched *ts;
        struct td_sched *ts2;
+       struct fw_task *new_task = &child->fw_task;
 
        THREAD_LOCK_ASSERT(td, MA_OWNED);
        /*
@@ -2431,6 +2438,9 @@ sched_add(struct thread *td, int flags)
         */
        thread_lock_set(td, TDQ_LOCKPTR(tdq));
        tdq_add(tdq, td, flags);
+
+       fw_notify(FW_ADMIT, (void*)&td->fw_task);
+
 #endif
        if (!(flags & SRQ_YIELDING))
                sched_setpreempt(td);
index 3d0d88e..f9e0277 100644 (file)
 #include <sys/ucred.h>
 #include <machine/proc.h>              /* Machine-dependent proc substruct. */
 
+#ifdef FW_MOD_SCHED
+#include <fw_task.h>
+#endif
+
 /*
  * One structure allocated per session.
  *
@@ -218,6 +222,9 @@ struct thread {
        sigqueue_t      td_sigqueue;    /* (c) Sigs arrived, not delivered. */
 #define        td_siglist      td_sigqueue.sq_signals
        u_char          td_lend_user_pri; /* (t) Lend user pri. */
+#ifdef FW_MOD_SCHED
+       struct fw_task fw_task;
+#endif
 
 /* Cleared during fork1() */
 #define        td_startzero td_flags