diff options
Diffstat (limited to 'kernel/cxx')
-rw-r--r-- | kernel/cxx/constructors.cxx | 18 | ||||
-rw-r--r-- | kernel/cxx/gcc_required_functions.cxx | 1 | ||||
-rw-r--r-- | kernel/cxx/icxxabi.cxx | 0 | ||||
-rw-r--r-- | kernel/cxx/icxxabi.h | 0 |
4 files changed, 19 insertions, 0 deletions
diff --git a/kernel/cxx/constructors.cxx b/kernel/cxx/constructors.cxx new file mode 100644 index 0000000..8c21453 --- /dev/null +++ b/kernel/cxx/constructors.cxx @@ -0,0 +1,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)(); + } +} diff --git a/kernel/cxx/gcc_required_functions.cxx b/kernel/cxx/gcc_required_functions.cxx new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/kernel/cxx/gcc_required_functions.cxx @@ -0,0 +1 @@ + diff --git a/kernel/cxx/icxxabi.cxx b/kernel/cxx/icxxabi.cxx new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/kernel/cxx/icxxabi.cxx diff --git a/kernel/cxx/icxxabi.h b/kernel/cxx/icxxabi.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/kernel/cxx/icxxabi.h |