1d5ec3805SAxel Dörfler/*
2d5ec3805SAxel Dörfler * Copyright 2009, Axel D��rfler, axeld@pinc-software.de. All Rights Reserved.
3d5ec3805SAxel Dörfler * Distributed under the terms of the MIT License.
4d5ec3805SAxel Dörfler */
5d5ec3805SAxel Dörfler
6d5ec3805SAxel Dörfler
7d5ec3805SAxel Dörfler#include <signal.h>
8d5ec3805SAxel Dörfler
924df6592SIngo Weinhold#include <symbol_versioning.h>
10d5ec3805SAxel Dörfler
1124df6592SIngo Weinhold#include <signal_private.h>
12d5ec3805SAxel Dörfler
1324df6592SIngo Weinhold
1424df6592SIngo Weinholdint
1524df6592SIngo Weinhold__siginterrupt_beos(int signal, int flag)
16d5ec3805SAxel Dörfler{
1724df6592SIngo Weinhold	struct sigaction_beos action;
1824df6592SIngo Weinhold	__sigaction_beos(signal, NULL, &action);
1924df6592SIngo Weinhold	if (flag)
2024df6592SIngo Weinhold		action.sa_flags &= ~SA_RESTART;
2124df6592SIngo Weinhold	else
2224df6592SIngo Weinhold		action.sa_flags |= SA_RESTART;
23d5ec3805SAxel Dörfler
2424df6592SIngo Weinhold	return __sigaction_beos(signal, &action, NULL);
2524df6592SIngo Weinhold}
2624df6592SIngo Weinhold
2724df6592SIngo Weinhold
2824df6592SIngo Weinholdint
2924df6592SIngo Weinhold__siginterrupt(int signal, int flag)
3024df6592SIngo Weinhold{
3124df6592SIngo Weinhold	struct sigaction action;
3224df6592SIngo Weinhold	sigaction(signal, NULL, &action);
33d5ec3805SAxel Dörfler	if (flag)
34d5ec3805SAxel Dörfler		action.sa_flags &= ~SA_RESTART;
35d5ec3805SAxel Dörfler	else
36d5ec3805SAxel Dörfler		action.sa_flags |= SA_RESTART;
37d5ec3805SAxel Dörfler
3824df6592SIngo Weinhold	return sigaction(signal, &action, NULL);
39d5ec3805SAxel Dörfler}
40d5ec3805SAxel Dörfler
4124df6592SIngo Weinhold
4224df6592SIngo WeinholdDEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__siginterrupt_beos", "siginterrupt@",
4324df6592SIngo Weinhold	"BASE");
4424df6592SIngo Weinhold
4524df6592SIngo WeinholdDEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__siginterrupt", "siginterrupt@@",
4624df6592SIngo Weinhold	"1_ALPHA4");
47