--- a/master/master.c Tue Sep 26 15:25:49 2006 +0000
+++ b/master/master.c Tue Sep 26 16:16:13 2006 +0000
@@ -1051,9 +1051,10 @@
/**
Measures the time, a frame is on the bus.
-*/
-
-void ec_master_measure_bus_time(ec_master_t *master)
+ \return 0 in case of success, else < 0
+*/
+
+int ec_master_measure_bus_time(ec_master_t *master)
{
ec_datagram_t datagram;
cycles_t cycles_start, cycles_end, cycles_timeout;
@@ -1064,7 +1065,7 @@
if (ec_datagram_brd(&datagram, 0x130, 2)) {
EC_ERR("Failed to allocate datagram for bus time measuring.\n");
ec_datagram_clear(&datagram);
- return;
+ return -1;
}
cycles_timeout = (cycles_t) EC_IO_TIMEOUT * (cpu_khz / 1000);
@@ -1103,11 +1104,13 @@
EC_INFO("Bus time is (min/avg/max) %u/%u.%u/%u us.\n",
min, sum / 100, sum % 100, max);
+ return 0;
error:
// Dequeue and free datagram
list_del(&datagram.queue);
ec_datagram_clear(&datagram);
+ return -1;
}
/******************************************************************************