#include "init-self.h"
typedef void (*init_t)(int, char **, char **);
typedef void (*fini_t)();
extern init_t __preinit_array_start[];
extern init_t __preinit_array_end[];
extern init_t __init_array_start[];
extern init_t __init_array_end[];
extern fini_t __fini_array_start[];
extern fini_t __fini_array_end[];
void _init(int argc, char **argv, char **envp);
void _fini();
void __init(int argc, char **argv, char **envp)
{
int i;
for (i = 0; i < __preinit_array_end - __preinit_array_start; i++)
(*__preinit_array_start[i])(argc, argv, envp);
_init(argc, argv, envp);
for (i = 0; i < __init_array_end - __init_array_start; i++)
(*__init_array_start[i])(argc, argv, envp);
}
void __fini()
{
int i;
for (i = __fini_array_end - __fini_array_start; i-- > 0;)
(*__fini_array_start[i])();
_fini();
}