si_free
static struct si_callback *si_free;
if ((si = si_free) != NULL)
si_free = si->next;
si->next = si_free;
si_free = si;
si->next = si_free;
si_free = si;
si_free(si);