#ifndef __CAPABILITY_H__
#define __CAPABILITY_H__
+#include "RtsFlags.h"
+
+// All the capabilities
+extern Capability *capabilities;
+
// Initialised the available capabilities.
//
extern void initCapabilities( void );
//
extern void threadRunnable ( void );
+// Return the capability that I own.
+//
+extern Capability *myCapability (void);
+
+extern void prodWorker ( void );
+
#ifdef RTS_SUPPORTS_THREADS
// Gives up the current capability IFF there is a higher-priority
// thread waiting for it. This happens in one of two ways:
// current worker thread should then re-acquire it using
// waitForCapability().
//
-extern void yieldCapability( Capability **pCap );
+extern void yieldCapability( Capability** pCap, Condition *cond );
// Acquires a capability for doing some work.
//