[retry] Add start_timer_fixed()
authorMichael Brown <mcb30@etherboot.org>
Wed, 11 Jun 2008 08:37:58 +0000 (09:37 +0100)
committerMichael Brown <mcb30@etherboot.org>
Wed, 11 Jun 2008 08:37:58 +0000 (09:37 +0100)
Allow for timers to be started with fixed timeouts.

src/include/gpxe/retry.h
src/net/retry.c

index e71e7b3..71982fc 100644 (file)
@@ -35,9 +35,21 @@ struct retry_timer {
 };
 
 extern void start_timer ( struct retry_timer *timer );
 };
 
 extern void start_timer ( struct retry_timer *timer );
-extern void start_timer_nodelay ( struct retry_timer *timer );
+extern void start_timer_fixed ( struct retry_timer *timer,
+                               unsigned long timeout );
 extern void stop_timer ( struct retry_timer *timer );
 
 extern void stop_timer ( struct retry_timer *timer );
 
+/**
+ * Start timer with no delay
+ *
+ * @v timer            Retry timer
+ *
+ * This starts the timer running with a zero timeout value.
+ */
+static inline void start_timer_nodelay ( struct retry_timer *timer ) {
+       start_timer_fixed ( timer, 0 );
+}
+
 /**
  * Test to see if timer is currently running
  *
 /**
  * Test to see if timer is currently running
  *
index 90b8971..3c93401 100644 (file)
@@ -74,15 +74,14 @@ void start_timer ( struct retry_timer *timer ) {
 }
 
 /**
 }
 
 /**
- * Start timer with no delay
+ * Start timer with a specified fixed timeout
  *
  * @v timer            Retry timer
  *
  * @v timer            Retry timer
- *
- * This starts the timer running with a zero timeout value.
+ * @v timeout          Timeout, in ticks
  */
  */
-void start_timer_nodelay ( struct retry_timer *timer ) {
+void start_timer_fixed ( struct retry_timer *timer, unsigned long timeout ) {
        start_timer ( timer );
        start_timer ( timer );
-       timer->timeout = 0;
+       timer->timeout = timeout;
 }
 
 /**
 }
 
 /**