added a libroot sigpending, kernel support isn't implemented
(fixed partly bug #49) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
3f84430938
commit
ab38c90461
@ -30,6 +30,7 @@ extern int _user_sigprocmask(int how, const sigset_t *set, sigset_t *oldSet);
|
|||||||
extern int _user_sigaction(int sig, const struct sigaction *action, struct sigaction *oldAction);
|
extern int _user_sigaction(int sig, const struct sigaction *action, struct sigaction *oldAction);
|
||||||
extern bigtime_t _user_set_alarm(bigtime_t time, uint32 mode);
|
extern bigtime_t _user_set_alarm(bigtime_t time, uint32 mode);
|
||||||
extern int _user_sigsuspend(const sigset_t *mask);
|
extern int _user_sigsuspend(const sigset_t *mask);
|
||||||
|
extern int _user_sigpending(sigset_t *set);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
@ -104,6 +104,7 @@ extern int _kern_sigprocmask(int how, const sigset_t *set, sigset_t *oldSet);
|
|||||||
extern int _kern_sigaction(int sig, const struct sigaction *action, struct sigaction *oldAction);
|
extern int _kern_sigaction(int sig, const struct sigaction *action, struct sigaction *oldAction);
|
||||||
extern bigtime_t _kern_set_alarm(bigtime_t time, uint32 mode);
|
extern bigtime_t _kern_set_alarm(bigtime_t time, uint32 mode);
|
||||||
extern int _kern_sigsuspend(const sigset_t *mask);
|
extern int _kern_sigsuspend(const sigset_t *mask);
|
||||||
|
extern int _kern_sigpending(sigset_t *set);
|
||||||
|
|
||||||
// image functions
|
// image functions
|
||||||
extern image_id _kern_register_image(image_info *info, size_t size);
|
extern image_id _kern_register_image(image_info *info, size_t size);
|
||||||
|
@ -600,7 +600,8 @@ _user_sigaction(int signal, const struct sigaction *userAction, struct sigaction
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
_user_sigsuspend(const sigset_t *mask) {
|
_user_sigsuspend(const sigset_t *mask)
|
||||||
|
{
|
||||||
sigset_t set;
|
sigset_t set;
|
||||||
if (mask == NULL)
|
if (mask == NULL)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@ -611,3 +612,14 @@ _user_sigsuspend(const sigset_t *mask) {
|
|||||||
// Todo : implement
|
// Todo : implement
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_user_sigpending(sigset_t *set) {
|
||||||
|
if (set == NULL)
|
||||||
|
return B_BAD_VALUE;
|
||||||
|
|
||||||
|
// Todo : implement
|
||||||
|
return EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ KernelMergeObject posix_signal.o :
|
|||||||
send_signal.c
|
send_signal.c
|
||||||
sigaction.c
|
sigaction.c
|
||||||
signal.c
|
signal.c
|
||||||
|
sigpending.c
|
||||||
sigprocmask.c
|
sigprocmask.c
|
||||||
sigset.c
|
sigset.c
|
||||||
sigsuspend.c
|
sigsuspend.c
|
||||||
|
23
src/system/libroot/posix/signal/sigpending.c
Normal file
23
src/system/libroot/posix/signal/sigpending.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2005, Haiku Project. All rights reserved.
|
||||||
|
* Distributed under the terms of the Haiku license.
|
||||||
|
*
|
||||||
|
* Author(s):
|
||||||
|
* Jérôme Duval
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <syscalls.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
sigpending(sigset_t *set)
|
||||||
|
{
|
||||||
|
int err = _kern_sigpending(set);
|
||||||
|
if (err < B_OK) {
|
||||||
|
errno = err;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user