-/* GetRoots(evac_fn f)
- *
- * Call f() for each root known to the scheduler.
- *
- * Called from STG : NO
- * Locks assumed : ????
- */
-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
-
-/* Context switch flag.
- * Locks required : none (conflicts are harmless)
- */
-extern int RTS_VAR(context_switch);
+/* Entry point for a new worker */
+void scheduleWorker (Capability *cap, Task *task);