u-boot/include/fuzzing_engine.h
Andrew Scull 3f807c6b81 fuzzing_engine: Add fuzzing engine uclass
This new class of device will provide fuzzing inputs from a fuzzing
engine.

Signed-off-by: Andrew Scull <ascull@google.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-06-23 12:58:18 -04:00

52 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (c) 2022 Google, Inc.
* Written by Andrew Scull <ascull@google.com>
*/
#ifndef __FUZZING_ENGINE_H
#define __FUZZING_ENGINE_H
struct udevice;
/**
* dm_fuzzing_engine_get_input() - get an input from the fuzzing engine device
*
* The function will return a pointer to the input data and the size of the
* data pointed to. The pointer will remain valid until the next invocation of
* this function.
*
* @dev: fuzzing engine device
* @data: output pointer to input data
* @size output size of input data
* Return: 0 if OK, -ve on error
*/
int dm_fuzzing_engine_get_input(struct udevice *dev,
const uint8_t **data,
size_t *size);
/**
* struct dm_fuzzing_engine_ops - operations for the fuzzing engine uclass
*
* This contains the functions implemented by a fuzzing engine device.
*/
struct dm_fuzzing_engine_ops {
/**
* @get_input() - get an input
*
* The function will return a pointer to the input data and the size of
* the data pointed to. The pointer will remain valid until the next
* invocation of this function.
*
* @get_input.dev: fuzzing engine device
* @get_input.data: output pointer to input data
* @get_input.size output size of input data
* @get_input.Return: 0 if OK, -ve on error
*/
int (*get_input)(struct udevice *dev,
const uint8_t **data,
size_t *size);
};
#endif /* __FUZZING_ENGINE_H */