Nix/src/libutil/namespaces.hh

38 lines
623 B
C++

#pragma once
///@file
#include <optional>
#include "types.hh"
namespace nix {
/**
* Save the current mount namespace. Ignored if called more than
* once.
*/
void saveMountNamespace();
/**
* Restore the mount namespace saved by saveMountNamespace(). Ignored
* if saveMountNamespace() was never called.
*/
void restoreMountNamespace();
/**
* Cause this thread to not share any FS attributes with the main
* thread, because this causes setns() in restoreMountNamespace() to
* fail.
*/
void unshareFilesystem();
#if __linux__
bool userNamespacesSupported();
bool mountAndPidNamespacesSupported();
#endif
}