Fix sigsuspend to use rt_sigsuspend on all platforms.

Change-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b
diff --git a/libc/bionic/signalfd.cpp b/libc/bionic/signalfd.cpp
index b7e6474..36ef81d 100644
--- a/libc/bionic/signalfd.cpp
+++ b/libc/bionic/signalfd.cpp
@@ -28,7 +28,7 @@
 
 #include <sys/signalfd.h>
 
-#include <private/kernel_sigset_t.h>
+#include "private/kernel_sigset_t.h"
 
 extern "C" int signalfd4(int fd, kernel_sigset_t* mask, size_t sizemask, int flags);
 
diff --git a/libc/bionic/sigsuspend.c b/libc/bionic/sigsuspend.cpp
similarity index 81%
rename from libc/bionic/sigsuspend.c
rename to libc/bionic/sigsuspend.cpp
index fd08631..fb846b8 100644
--- a/libc/bionic/sigsuspend.c
+++ b/libc/bionic/sigsuspend.cpp
@@ -25,19 +25,14 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#include <signal.h>
-#ifdef __mips__
-extern int __sigsuspend(const sigset_t *);
-#else
-extern int __sigsuspend(int, int, unsigned int);
-#endif
 
-int sigsuspend(const sigset_t *_mask)
-{
-#ifdef __mips__
-        return __sigsuspend(_mask);
-#else
-        unsigned int    mask = (unsigned int)*_mask;
-        return __sigsuspend(0, 0, mask);
-#endif
+#include <signal.h>
+
+#include "private/kernel_sigset_t.h"
+
+extern "C" int __rt_sigsuspend(const kernel_sigset_t*, size_t);
+
+int sigsuspend(const sigset_t* bionic_set) {
+  kernel_sigset_t set(bionic_set);
+  return __rt_sigsuspend(&set, sizeof(set));
 }
diff --git a/libc/bionic/sigwait.cpp b/libc/bionic/sigwait.cpp
index 1546fd6..873a368 100644
--- a/libc/bionic/sigwait.cpp
+++ b/libc/bionic/sigwait.cpp
@@ -31,7 +31,7 @@
 #include <string.h>
 #include <time.h>
 
-#include <private/kernel_sigset_t.h>
+#include "private/kernel_sigset_t.h"
 
 extern "C" int __rt_sigtimedwait(const sigset_t* uthese, siginfo_t* uinfo, const struct timespec* uts, size_t sigsetsize);