mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	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);
 |