dn_heap
heap_init(struct dn_heap *h, int size, int ofs)
heap_insert(struct dn_heap *h, uint64_t key1, void *p)
heap_extract(struct dn_heap *h, void *obj)
heap_move(struct dn_heap *h, uint64_t new_key, void *object)
heapify(struct dn_heap *h)
heap_scan(struct dn_heap *h, int (*fn)(void *, uintptr_t),
heap_free(struct dn_heap *h)
heap_resize(struct dn_heap *h, unsigned int new_size)
int heap_init(struct dn_heap *h, int size, int ofs);
int heap_insert(struct dn_heap *h, uint64_t key1, void *p);
bool heap_extract(struct dn_heap *h, void *obj);
void heap_free(struct dn_heap *h);
int heap_scan(struct dn_heap *, int (*)(void *, uintptr_t), uintptr_t);
struct dn_heap *h = &si->idle_heap;
struct dn_heap *sch = &si->sch_heap;
struct dn_heap *neh = &si->ne_heap;
struct dn_heap sch_heap; /* top extract - key Finish time */
struct dn_heap ne_heap; /* top extract - key Start time */
struct dn_heap idle_heap; /* random extract - key Start=Finish time */
struct dn_heap evheap; /* scheduled events */
struct dn_heap h;