blob: b05cb915095d7cbaeed0c375507e177cccb8e7c6 [file] [log] [blame]
mardyk01f5b46352023-10-24 16:23:23 -05001/*
mardyk017b51dbe2024-01-17 15:25:36 -06002 * Copyright (c) 2024, Arm Limited. All rights reserved.
mardyk01f5b46352023-10-24 16:23:23 -05003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Alex Liang1d40d722024-07-23 16:42:16 -05007#include <stdlib.h>
8#include <time.h>
9
mardyk01f5b46352023-10-24 16:23:23 -050010#include <fuzz_helper.h>
Mark Dykes50297972024-03-15 12:49:22 -050011#include "smcmalloc.h"
12
mardyk01f5b46352023-10-24 16:23:23 -050013#include <power_management.h>
14#include <sdei.h>
15#include <test_helpers.h>
16#include <tftf_lib.h>
17#include <timer.h>
18
mardyk017b51dbe2024-01-17 15:25:36 -060019#ifndef sdei_version_funcid
20#define sdei_version_funcid 0
21#endif
22#ifndef sdei_pe_unmask_funcid
23#define sdei_pe_unmask_funcid 0
24#endif
25#ifndef sdei_pe_mask_funcid
26#define sdei_pe_mask_funcid 0
27#endif
28#ifndef sdei_event_status_funcid
29#define sdei_event_status_funcid 0
30#endif
31#ifndef sdei_event_signal_funcid
32#define sdei_event_signal_funcid 0
33#endif
34#ifndef sdei_private_reset_funcid
35#define sdei_private_reset_funcid 0
36#endif
37#ifndef sdei_shared_reset_funcid
38#define sdei_shared_reset_funcid 0
39#endif
40
41
Alex Liang0fa7d212024-06-18 11:17:01 -050042#ifndef sdei_event_register_funcid
43#define sdei_event_register_funcid 0
44#endif
45#ifndef sdei_event_enable_funcid
46#define sdei_event_enable_funcid 0
47#endif
48#ifndef sdei_event_disable_funcid
49#define sdei_event_disable_funcid 0
50#endif
51#ifndef sdei_event_context_funcid
52#define sdei_event_context_funcid 0
53#endif
54#ifndef sdei_event_complete_funcid
55#define sdei_event_complete_funcid 0
56#endif
57#ifndef sdei_event_complete_and_resume_funcid
58#define sdei_event_complete_and_resume_funcid 0
59#endif
60#ifndef sdei_event_unregister_funcid
61#define sdei_event_unregister_funcid 0
62#endif
63#ifndef sdei_event_get_info_funcid
64#define sdei_event_get_info_funcid 0
65#endif
66#ifndef sdei_event_routing_set_funcid
67#define sdei_event_routing_set_funcid 0
68#endif
69#ifndef sdei_interrupt_bind_funcid
70#define sdei_interrupt_bind_funcid 0
71#endif
72#ifndef sdei_interrupt_release_funcid
73#define sdei_interrupt_release_funcid 0
74#endif
75#ifndef sdei_features_funcid
76#define sdei_features_funcid 0
77#endif
78#ifndef sdei_signal_hang_funcid
79#define sdei_signal_hang_funcid 0
80#endif
81#ifndef experiment_funcid
82#define experiment_funcid 0
83#endif
84#ifndef repeat_interrupt_bind_funcid
85#define repeat_interrupt_bind_funcid 0
86#endif
87#ifndef sdei_event_get_info_coverage_funcid
88#define sdei_event_get_info_coverage_funcid 0
89#endif
90#ifndef sdei_routing_set_coverage_funcid
91#define sdei_routing_set_coverage_funcid 0
92#endif
93#ifndef test_funcid
94#define test_funcid 0
95#endif
96
97
98int64_t tftf_test_sdei_noarg(int64_t (*sdei_func)(void), char *funcstr);
mardyk01f5b46352023-10-24 16:23:23 -050099void tftf_test_sdei_singlearg(int64_t (*sdei_func)(uint64_t), char *funcstr);
Alex Liang0fa7d212024-06-18 11:17:01 -0500100void run_sdei_fuzz(int funcid, struct memmod *mmod, bool inrange, int cntid);
101char *return_str(int64_t ret);
102void print_ret(char *funcstr, int64_t ret);