diff --git a/headers/private/kernel/boot/net/NetStack.h b/headers/private/kernel/boot/net/NetStack.h index f14873202c..5092d6e0b1 100644 --- a/headers/private/kernel/boot/net/NetStack.h +++ b/headers/private/kernel/boot/net/NetStack.h @@ -26,6 +26,7 @@ private: public: static status_t CreateDefault(); static NetStack *Default(); + static status_t ShutDown(); status_t AddEthernetInterface(EthernetInterface *interface); @@ -53,6 +54,7 @@ private: // afterwards, which is supposed to add network interfaces. status_t net_stack_init(); status_t platform_net_stack_init(); +status_t net_stack_cleanup(); #endif // _BOOT_NET_STACK_H diff --git a/src/system/boot/loader/net/NetStack.cpp b/src/system/boot/loader/net/NetStack.cpp index 7a172eeb4c..f420d94b27 100644 --- a/src/system/boot/loader/net/NetStack.cpp +++ b/src/system/boot/loader/net/NetStack.cpp @@ -120,6 +120,19 @@ NetStack::Default() return sNetStack; } + +status_t +NetStack::ShutDown() +{ + if (sNetStack != NULL) { + delete sNetStack; + sNetStack = NULL; + } + + return B_OK; +} + + // AddEthernetInterface status_t NetStack::AddEthernetInterface(EthernetInterface *interface) @@ -155,3 +168,9 @@ net_stack_init() return platform_net_stack_init(); } + +status_t +net_stack_cleanup() +{ + return NetStack::ShutDown(); +}