
Untitled
By: a guest on
May 9th, 2012 | syntax:
None | size: 0.84 KB | hits: 21 | expires: Never
typedef int init_callback_t(void);
typedef void term_callback_t(void);
typedef struct init_and_term_s
{
init_callback_t *init;
term_callback_t *term;
} init_and_term_t;
int init_chain(const init_and_term_t *chain, int count)
{
int i;
const init_and_term_t *entry;
for (i = 0; i < count; ++i)
{
entry = &chain[i];
if (!(*entry->init)())
{
term_chain(chain, i);
return 0;
}
}
return 1;
}
void term_chain(const init_and_term_t *chain, int count)
{
int i;
const init_and_term_t *entry;
for (i = count - 1; i >= 0; --i)
{
entry = &chain[i];
(*entry->term)();
}
}