blob: 3a4af1d156f7ce69aa3d4f8c263cf4a56921b179 [file] [log] [blame]
Mark Dykes50297972024-03-15 12:49:22 -05001/*
2 * Copyright (c) 2024, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7
8#ifndef CONSTRAINT_H
9#define CONSTRAINT_H
10
11#include <stdint.h>
12#include "smcmalloc.h"
13
14#define SANITY_LEVEL_0 0
15#define SANITY_LEVEL_1 1
16#define SANITY_LEVEL_2 2
17#define SANITY_LEVEL_3 3
18
19#define FUZZER_CONSTRAINT_SVALUE 0
20#define FUZZER_CONSTRAINT_RANGE 1
21#define FUZZER_CONSTRAINT_VECTOR 2
22
23#define FUZZER_CONSTRAINT_ACCMODE 0
24#define FUZZER_CONSTRAINT_EXCMODE 1
25
26#define FUZZ_MAX_SHIFT_AMNT 16
27#define FUZZ_MAX_REG_SIZE 64
28#define FUZZ_MAX_NAME_SIZE 80
29
30struct inputparameters {
31 uint64_t x1;
32 uint64_t x2;
33 uint64_t x3;
34 uint64_t x4;
35 uint64_t x5;
36 uint64_t x6;
37 uint64_t x7;
38 uint64_t x8;
39 uint64_t x9;
40 uint64_t x10;
41 uint64_t x11;
42 uint64_t x12;
43 uint64_t x13;
44 uint64_t x14;
45 uint64_t x15;
46 uint64_t x16;
47 uint64_t x17;
48};
49
50void setconstraint(int contype, uint64_t *vecinput, int veclen, int fieldnameptr, struct memmod *mmod, int mode);
51struct inputparameters generate_args(int smccall, int sanity);
52uint64_t get_generated_value(int fieldnameptr, struct inputparameters inp);
53void print_smccall(int smccall, struct inputparameters inp);
54#endif /* CONSTRAINT_H */