diff options
author | Tom Rini <trini@konsulko.com> | 2022-03-10 08:24:45 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-03-10 08:24:45 -0500 |
commit | 6e7de8fd3eccf3119570581569d899809508d8df (patch) | |
tree | f9d040341823bf6267a0d65fc5c8539bbe04f555 /net/arp.c | |
parent | 0bf4e0bb935e5c7fc016142e0228882610ecbf39 (diff) | |
parent | 8c187d667c897971a663e2cb21ff901a9e4b60e6 (diff) | |
download | u-boot-next.zip u-boot-next.tar.gz u-boot-next.tar.bz2 |
Merge branch '2022-03-09-events-subsystem' into nextnext
To quote the author:
It is a common need in U-Boot to have one subsystem notify another
when something happens. An example is reading a partition table when a
new block device is set up.
It is also common to add weak functions and 'hook' functions to modify
how U-Boot works. See for example ft_board_setup() and the like.
U-Boot would benefit from a generic mechanism to handle these cases,
with the ability to hook into various 'events' in a
subsystem-independent and transparent way.
This series provides a way to create and dispatch events, with a way of
registering a 'spy' which watches for events of different types. This
allows 'hook' functions to be created in a generic way.
It also includes a script to list the hooks in an image, which is a bit
easier to debug than weak functions, as well as an 'event' command to
do the same from within U-Boot.
These 'static' events can be used to replace hooks like misc_init_f(),
for example. Also included is basic support for 'dynamic' events, where
a spy can be registered at runtime. The need for this is still being
figured out.
Diffstat (limited to 'net/arp.c')
-rw-r--r-- | net/arp.c | 18 |
1 files changed, 2 insertions, 16 deletions
@@ -17,20 +17,6 @@ #include "arp.h" -#ifndef CONFIG_ARP_TIMEOUT -/* Milliseconds before trying ARP again */ -# define ARP_TIMEOUT 5000UL -#else -# define ARP_TIMEOUT CONFIG_ARP_TIMEOUT -#endif - - -#ifndef CONFIG_NET_RETRY_COUNT -# define ARP_TIMEOUT_COUNT 5 /* # of timeouts before giving up */ -#else -# define ARP_TIMEOUT_COUNT CONFIG_NET_RETRY_COUNT -#endif - struct in_addr net_arp_wait_packet_ip; static struct in_addr net_arp_wait_reply_ip; /* MAC address of waiting packet's destination */ @@ -109,10 +95,10 @@ int arp_timeout_check(void) t = get_timer(0); /* check for arp timeout */ - if ((t - arp_wait_timer_start) > ARP_TIMEOUT) { + if ((t - arp_wait_timer_start) > CONFIG_ARP_TIMEOUT) { arp_wait_try++; - if (arp_wait_try >= ARP_TIMEOUT_COUNT) { + if (arp_wait_try >= CONFIG_NET_RETRY_COUNT) { puts("\nARP Retry count exceeded; starting again\n"); arp_wait_try = 0; net_set_state(NETLOOP_FAIL); |