diff options
author | Samuel Johnson <[email protected]> | 2025-06-27 17:46:28 -0400 |
---|---|---|
committer | Samuel Johnson <[email protected]> | 2025-06-27 17:46:28 -0400 |
commit | 12fd3a91f138bf90520134682e38bf3b0341e660 (patch) | |
tree | 66b3f4a19f50a0f9883ca3f5a286a1e8dc3bc8c6 /kernel/cxx/constructors.cxx | |
parent | 6e65e584a3baf2dfe8906c2d847ca5169b91b3fc (diff) |
Create kernel build infrastructure
Diffstat (limited to 'kernel/cxx/constructors.cxx')
-rw-r--r-- | kernel/cxx/constructors.cxx | 18 |
1 files changed, 18 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)(); + } +} |