summaryrefslogtreecommitdiff
path: root/kernel/cxx/constructors.cxx
blob: 8c2145324b480aeae9a10c1984bfa62da3827aae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
extern void (*_ctors_start[0])(void), (*_ctors_end[0])(void);
extern void (*_dtors_start[0])(void), (*_dtors_end[0])(void);

void init (void)
{
    for (void (**ctor)(void) = _ctors_start; ctor != _ctors_end; ctor++)
    {
        (*ctor)();
    }
}

void fini (void)
{
    for (void (**dtor)(void) = _dtors_start; dtor != _dtors_end; dtor++)
    {
        (*dtor)();
    }
}