mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 14:00:19 +00: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>
		
			
				
	
	
		
			42 lines
		
	
	
		
			930 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |