Fix sigsuspend to use rt_sigsuspend on all platforms.

Change-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b
This commit is contained in:
Elliott Hughes
2013-10-15 18:01:56 -07:00
parent c100a10069
commit 1f5af926fa
15 changed files with 69 additions and 82 deletions

View File

@@ -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);

View File

@@ -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));
}

View File

@@ -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);