blob: 2fca578b19aca8218cf915672bbb7e4053a71959 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2020 Linaro Limited. All rights reserved.
* Author: Viresh Kumar <viresh.kumar@linaro.org>
*/
#ifndef SIGWAIT_H__
#define SIGWAIT_H__
#include "tst_test.h"
#include "tst_timer.h"
#include <signal.h>
/* swi: sigwaitinfo() */
typedef int (*swi_func) (const sigset_t * set, siginfo_t * info,
void * timeout);
typedef void (*test_func) (swi_func, int, enum tst_ts_type type);
struct sigwait_test_desc {
test_func tf;
int signo;
};
void test_empty_set(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_timeout(swi_func sigwaitinfo, int signo, enum tst_ts_type type);
void test_unmasked_matching(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_unmasked_matching_noinfo(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_masked_matching(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_masked_matching_rt(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_masked_matching_noinfo(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_bad_address(swi_func sigwaitinfo, int signo,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_bad_address2(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void test_bad_address3(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED,
enum tst_ts_type type LTP_ATTRIBUTE_UNUSED);
void sigwait_setup(void);
#endif /* SIGWAIT_H__ */