Index: uspace/lib/cpp/src/mutex.cpp
===================================================================
--- uspace/lib/cpp/src/mutex.cpp	(revision 771d162e567c89ce41852e11d8a0b9031a168246)
+++ uspace/lib/cpp/src/mutex.cpp	(revision d3501757f8fe2b3aa0ed85c7a18d030f2e170c8f)
@@ -173,3 +173,47 @@
         return &mtx_;
     }
+
+    shared_timed_mutex::shared_timed_mutex() noexcept
+        : mtx_{}
+    {
+        aux::threading::shared_mutex::init(mtx_);
+    }
+
+    shared_timed_mutex::~shared_timed_mutex()
+    { /* DUMMY BODY */ }
+
+    void shared_timed_mutex::lock()
+    {
+        aux::threading::shared_mutex::lock(mtx_);
+    }
+
+    bool shared_timed_mutex::try_lock()
+    {
+        return aux::threading::shared_mutex::try_lock(mtx_);
+    }
+
+    void shared_timed_mutex::unlock()
+    {
+        aux::threading::shared_mutex::unlock(mtx_);
+    }
+
+    void shared_timed_mutex::lock_shared()
+    {
+        aux::threading::shared_mutex::lock_shared(mtx_);
+    }
+
+    bool shared_timed_mutex::try_lock_shared()
+    {
+        return aux::threading::shared_mutex::try_lock_shared(mtx_);
+    }
+
+    void shared_timed_mutex::unlock_shared()
+    {
+        aux::threading::shared_mutex::unlock_shared(mtx_);
+    }
+
+    shared_timed_mutex::native_handle_type shared_timed_mutex::native_handle()
+    {
+        return &mtx_;
+    }
 }
