+ nat i,n;
+
+ n = RtsFlags.ParFlags.nNodes;
+ capabilities = stgMallocBytes(n * sizeof(Capability), "initCapabilities");
+
+ for (i = 0; i < n; i++) {
+ initCapability(&capabilities[i]);
+ capabilities[i].link = &capabilities[i+1];
+ }
+ capabilities[n-1].link = NULL;
+
+ free_capabilities = &capabilities[0];
+ rts_n_free_capabilities = n;
+
+ IF_DEBUG(scheduler, sched_belch("allocated %d capabilities", n));