From c760ac3022ed655e857126ca8ed4df3bfc7ce15a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 15 Jun 2010 18:13:36 +0100 Subject: [PATCH] [retry] Add timer_init() wrapper function Standardise on using timer_init() to initialise an embedded retry timer, to match the coding style used by other embedded objects. Signed-off-by: Michael Brown --- src/include/ipxe/retry.h | 12 ++++++++++++ src/net/aoe.c | 2 +- src/net/infiniband/ib_mi.c | 2 +- src/net/ipv4.c | 2 +- src/net/tcp.c | 2 +- src/net/udp/dhcp.c | 4 ++-- src/net/udp/dns.c | 2 +- src/net/udp/slam.c | 4 ++-- src/net/udp/tftp.c | 4 ++-- 9 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/include/ipxe/retry.h b/src/include/ipxe/retry.h index 370a599c..ff26de25 100644 --- a/src/include/ipxe/retry.h +++ b/src/include/ipxe/retry.h @@ -51,6 +51,18 @@ struct retry_timer { void ( * expired ) ( struct retry_timer *timer, int over ); }; +/** + * Initialise a timer + * + * @v timer Retry timer + * @v expired Timer expired callback + */ +static inline __attribute__ (( always_inline )) void +timer_init ( struct retry_timer *timer, + void ( * expired ) ( struct retry_timer *timer, int over ) ) { + timer->expired = expired; +} + extern void start_timer ( struct retry_timer *timer ); extern void start_timer_fixed ( struct retry_timer *timer, unsigned long timeout ); diff --git a/src/net/aoe.c b/src/net/aoe.c index 80403db7..4b700073 100644 --- a/src/net/aoe.c +++ b/src/net/aoe.c @@ -439,10 +439,10 @@ int aoe_attach ( struct ata_device *ata, struct net_device *netdev, if ( ! aoe ) return -ENOMEM; ref_init ( &aoe->refcnt, aoe_free ); + timer_init ( &aoe->timer, aoe_timer_expired ); aoe->netdev = netdev_get ( netdev ); memcpy ( aoe->target, netdev->ll_broadcast, sizeof ( aoe->target ) ); aoe->tag = AOE_TAG_MAGIC; - aoe->timer.expired = aoe_timer_expired; /* Parse root path */ if ( ( rc = aoe_parse_root_path ( aoe, root_path ) ) != 0 ) diff --git a/src/net/infiniband/ib_mi.c b/src/net/infiniband/ib_mi.c index b4b64ca4..5a01ce25 100644 --- a/src/net/infiniband/ib_mi.c +++ b/src/net/infiniband/ib_mi.c @@ -281,8 +281,8 @@ ib_create_madx ( struct ib_device *ibdev, struct ib_mad_interface *mi, madx = zalloc ( sizeof ( *madx ) ); if ( ! madx ) return NULL; + timer_init ( &madx->timer, ib_mi_timer_expired ); madx->mi = mi; - madx->timer.expired = ib_mi_timer_expired; madx->op = op; /* Determine address vector */ diff --git a/src/net/ipv4.c b/src/net/ipv4.c index 6d3d80a5..2354097b 100644 --- a/src/net/ipv4.c +++ b/src/net/ipv4.c @@ -224,8 +224,8 @@ static struct io_buffer * ipv4_reassemble ( struct io_buffer * iobuf ) { free_iob ( iobuf ); /* Set the reassembly timer */ + timer_init ( &fragbuf->frag_timer, ipv4_frag_expired ); fragbuf->frag_timer.timeout = IP_FRAG_TIMEOUT; - fragbuf->frag_timer.expired = ipv4_frag_expired; start_timer ( &fragbuf->frag_timer ); /* Add the fragment buffer to the list of fragment buffers */ diff --git a/src/net/tcp.c b/src/net/tcp.c index 449f434a..118c6d0f 100644 --- a/src/net/tcp.c +++ b/src/net/tcp.c @@ -226,12 +226,12 @@ static int tcp_open ( struct xfer_interface *xfer, struct sockaddr *peer, DBGC ( tcp, "TCP %p allocated\n", tcp ); ref_init ( &tcp->refcnt, NULL ); xfer_init ( &tcp->xfer, &tcp_xfer_operations, &tcp->refcnt ); + timer_init ( &tcp->timer, tcp_expired ); tcp->prev_tcp_state = TCP_CLOSED; tcp->tcp_state = TCP_STATE_SENT ( TCP_SYN ); tcp_dump_state ( tcp ); tcp->snd_seq = random(); INIT_LIST_HEAD ( &tcp->queue ); - tcp->timer.expired = tcp_expired; memcpy ( &tcp->peer, st_peer, sizeof ( tcp->peer ) ); /* Bind to local port */ diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 33212b06..fff331f7 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -1442,10 +1442,10 @@ int start_dhcp ( struct job_interface *job, struct net_device *netdev ) { ref_init ( &dhcp->refcnt, dhcp_free ); job_init ( &dhcp->job, &dhcp_job_operations, &dhcp->refcnt ); xfer_init ( &dhcp->xfer, &dhcp_xfer_operations, &dhcp->refcnt ); + timer_init ( &dhcp->timer, dhcp_timer_expired ); dhcp->netdev = netdev_get ( netdev ); dhcp->local.sin_family = AF_INET; dhcp->local.sin_port = htons ( BOOTPC_PORT ); - dhcp->timer.expired = dhcp_timer_expired; /* Instantiate child objects and attach to our interfaces */ if ( ( rc = xfer_open_socket ( &dhcp->xfer, SOCK_DGRAM, &dhcp_peer, @@ -1545,13 +1545,13 @@ int start_pxebs ( struct job_interface *job, struct net_device *netdev, ref_init ( &dhcp->refcnt, dhcp_free ); job_init ( &dhcp->job, &dhcp_job_operations, &dhcp->refcnt ); xfer_init ( &dhcp->xfer, &dhcp_xfer_operations, &dhcp->refcnt ); + timer_init ( &dhcp->timer, dhcp_timer_expired ); dhcp->netdev = netdev_get ( netdev ); dhcp->local.sin_family = AF_INET; fetch_ipv4_setting ( netdev_settings ( netdev ), &ip_setting, &dhcp->local.sin_addr ); dhcp->local.sin_port = htons ( BOOTPC_PORT ); dhcp->pxe_type = cpu_to_le16 ( pxe_type ); - dhcp->timer.expired = dhcp_timer_expired; /* Construct PXE boot server IP address lists */ pxe_discovery_control = diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index 47fc6c75..35ead0c7 100644 --- a/src/net/udp/dns.c +++ b/src/net/udp/dns.c @@ -506,7 +506,7 @@ static int dns_resolv ( struct resolv_interface *resolv, ref_init ( &dns->refcnt, NULL ); resolv_init ( &dns->resolv, &null_resolv_ops, &dns->refcnt ); xfer_init ( &dns->socket, &dns_socket_operations, &dns->refcnt ); - dns->timer.expired = dns_timer_expired; + timer_init ( &dns->timer, dns_timer_expired ); memcpy ( &dns->sa, sa, sizeof ( dns->sa ) ); /* Create query */ diff --git a/src/net/udp/slam.c b/src/net/udp/slam.c index 3f0b0e2e..a5a2421f 100644 --- a/src/net/udp/slam.c +++ b/src/net/udp/slam.c @@ -753,8 +753,8 @@ static int slam_open ( struct xfer_interface *xfer, struct uri *uri ) { xfer_init ( &slam->socket, &slam_socket_operations, &slam->refcnt ); xfer_init ( &slam->mc_socket, &slam_mc_socket_operations, &slam->refcnt ); - slam->master_timer.expired = slam_master_timer_expired; - slam->slave_timer.expired = slam_slave_timer_expired; + timer_init ( &slam->master_timer, slam_master_timer_expired ); + timer_init ( &slam->slave_timer, slam_slave_timer_expired ); /* Fake an invalid cached header of { 0x00, ... } */ slam->header_len = 1; /* Fake parameters for initial NACK */ diff --git a/src/net/udp/tftp.c b/src/net/udp/tftp.c index 49c857fb..5e98f58c 100644 --- a/src/net/udp/tftp.c +++ b/src/net/udp/tftp.c @@ -1136,13 +1136,13 @@ static int tftp_core_open ( struct xfer_interface *xfer, struct uri *uri, return -ENOMEM; ref_init ( &tftp->refcnt, tftp_free ); xfer_init ( &tftp->xfer, &tftp_xfer_operations, &tftp->refcnt ); - tftp->uri = uri_get ( uri ); xfer_init ( &tftp->socket, &tftp_socket_operations, &tftp->refcnt ); xfer_init ( &tftp->mc_socket, &tftp_mc_socket_operations, &tftp->refcnt ); + timer_init ( &tftp->timer, tftp_timer_expired ); + tftp->uri = uri_get ( uri ); tftp->blksize = TFTP_DEFAULT_BLKSIZE; tftp->flags = flags; - tftp->timer.expired = tftp_timer_expired; /* Open socket */ tftp->port = uri_port ( tftp->uri, default_port );