1/* 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 */ 52