b43ea1bf18
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>
36 lines
874 B
Plaintext
36 lines
874 B
Plaintext
Udp framework
|
|
|
|
The udp framework is build on top of network framework and is designed
|
|
to define new protocol or new command based on udp without modifying
|
|
the network framework.
|
|
|
|
The udp framework define a function udp_loop that take as argument
|
|
a structure udp_ops (defined in include/net/udp.h) :
|
|
|
|
struct udp_ops {
|
|
int (*prereq)(void *data);
|
|
int (*start)(void *data);
|
|
void *data;
|
|
};
|
|
|
|
The callback prereq define if all the requirements are
|
|
valid before running the network/udp loop.
|
|
|
|
The callback start define the first step in the network/udp loop,
|
|
and it may also be used to configure a timemout and udp handler.
|
|
|
|
The pointer data is used to store private data that
|
|
could be used by both callback.
|
|
|
|
A simple example to use this framework:
|
|
|
|
static struct udp_ops udp_ops = {
|
|
.prereq = wmp_prereq,
|
|
.start = wmp_start,
|
|
.data = NULL,
|
|
};
|
|
|
|
...
|
|
|
|
err = udp_loop(&udp_ops);
|