blob: 357346e93dfef1e51dbfc1289768d2964d7b5f97 [file] [log] [blame]
Andrew Scull3f807c62022-05-30 10:00:08 +00001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (c) 2022 Google, Inc.
4 * Written by Andrew Scull <ascull@google.com>
5 */
6
7#ifndef __FUZZING_ENGINE_H
8#define __FUZZING_ENGINE_H
9
10struct udevice;
11
12/**
13 * dm_fuzzing_engine_get_input() - get an input from the fuzzing engine device
14 *
15 * The function will return a pointer to the input data and the size of the
16 * data pointed to. The pointer will remain valid until the next invocation of
17 * this function.
18 *
19 * @dev: fuzzing engine device
20 * @data: output pointer to input data
21 * @size output size of input data
22 * Return: 0 if OK, -ve on error
23 */
24int dm_fuzzing_engine_get_input(struct udevice *dev,
25 const uint8_t **data,
26 size_t *size);
27
28/**
29 * struct dm_fuzzing_engine_ops - operations for the fuzzing engine uclass
30 *
31 * This contains the functions implemented by a fuzzing engine device.
32 */
33struct dm_fuzzing_engine_ops {
34 /**
35 * @get_input() - get an input
36 *
37 * The function will return a pointer to the input data and the size of
38 * the data pointed to. The pointer will remain valid until the next
39 * invocation of this function.
40 *
41 * @get_input.dev: fuzzing engine device
42 * @get_input.data: output pointer to input data
43 * @get_input.size output size of input data
44 * @get_input.Return: 0 if OK, -ve on error
45 */
46 int (*get_input)(struct udevice *dev,
47 const uint8_t **data,
48 size_t *size);
49};
50
51#endif /* __FUZZING_ENGINE_H */