u-boot/include/net/udp.h
Philippe Reynes b43ea1bf18 net: add a generic udp protocol
This commit adds a generic udp protocol framework in the
network loop. So protocol based on udp may be implemented
without modifying the network loop (for example custom
wait magic packet).

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2020-09-30 16:55:03 -04:00

42 lines
930 B
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (C) 2020 Philippe Reynes <philippe.reynes@softathome.com>
*/
#ifndef __UDP
#define __UDP
/**
* struct udp_ops - function to handle udp packet
*
* This structure provides the function to handle udp packet in
* the network loop.
*
* @prereq: callback called to check the requirement
* @start: callback called to start the protocol/feature
* @data: pointer to store private data (used by prereq and start)
*/
struct udp_ops {
int (*prereq)(void *data);
int (*start)(void *data);
void *data;
};
int udp_prereq(void);
int udp_start(void);
/**
* udp_loop() - network loop for udp protocol
*
* Launch a network loop for udp protocol and use callbacks
* provided in parameter @ops to initialize the loop, and then
* to handle udp packet.
*
* @ops: udp callback
* @return: 0 if success, otherwise < 0 on error
*/
int udp_loop(struct udp_ops *ops);
#endif