+void GetRoots(evac_fn);
+
+/* workerStart()
+ *
+ * Entry point for a new worker task.
+ * Called from STG : NO
+ * Locks assumed : none
+ */
+void workerStart(Task *task);
+
+#if defined(GRAN)
+void awaken_blocked_queue(StgBlockingQueueElement *q, StgClosure *node);
+void unlink_from_bq(StgTSO* tso, StgClosure* node);
+void initThread(StgTSO *tso, nat stack_size, StgInt pri);
+#elif defined(PAR)
+nat run_queue_len(void);
+void awaken_blocked_queue(StgBlockingQueueElement *q, StgClosure *node);
+void initThread(StgTSO *tso, nat stack_size);
+#else
+char *info_type(StgClosure *closure); // dummy
+char *info_type_by_ip(StgInfoTable *ip); // dummy
+void awaken_blocked_queue(StgTSO *q);
+void initThread(StgTSO *tso, nat stack_size);
+#endif