summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/drivers/timer_rtdsc.c5
-rw-r--r--src/arch/i386/include/bits/errfile.h3
-rw-r--r--src/core/timer.c8
3 files changed, 8 insertions, 8 deletions
diff --git a/src/arch/i386/drivers/timer_rtdsc.c b/src/arch/i386/drivers/timer_rtdsc.c
index 1cd2abead..336e3e6fc 100644
--- a/src/arch/i386/drivers/timer_rtdsc.c
+++ b/src/arch/i386/drivers/timer_rtdsc.c
@@ -1,6 +1,7 @@
#include <gpxe/init.h>
#include <gpxe/timer.h>
+#include <errno.h>
#include <stdio.h>
#include <bits/cpu.h>
#include <bits/timer2.h>
@@ -78,8 +79,8 @@ static int rtdsc_ts_init(void)
}
}
- printf("RTDSC timer not available on this machine.\n");
- return 1;
+ DBG("RTDSC timer not available on this machine.\n");
+ return -ENODEV;
}
struct timer rtdsc_ts __timer (01) = {
diff --git a/src/arch/i386/include/bits/errfile.h b/src/arch/i386/include/bits/errfile.h
index a6f878254..ce58eefd0 100644
--- a/src/arch/i386/include/bits/errfile.h
+++ b/src/arch/i386/include/bits/errfile.h
@@ -26,6 +26,9 @@
#define ERRFILE_undionly ( ERRFILE_ARCH | ERRFILE_NET | 0x00030000 )
#define ERRFILE_undirom ( ERRFILE_ARCH | ERRFILE_NET | 0x00040000 )
+#define ERRFILE_timer_rtdsc ( ERRFILE_ARCH | ERRFILE_DRIVER | 0x00000000 )
+#define ERRFILE_timer_bios ( ERRFILE_ARCH | ERRFILE_DRIVER | 0x00010000 )
+
/** @} */
#endif /* _BITS_ERRFILE_H */
diff --git a/src/core/timer.c b/src/core/timer.c
index da53e0539..e736f5285 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -53,17 +53,13 @@ static void timer_init(void)
struct timer *ts;
for (ts = ts_table; ts < ts_table_end; ts++) {
- if (ts->init && !ts->init()) {
+ if (ts->init && ts->init() >= 0) {
used_ts = ts;
break;
}
}
- if (!used_ts) {
- printf("No timer available. This should never happen. Expect gPXE to die soon.\n");
- /* Panic */
- }
-
+ assert(used_ts);
}
struct init_fn ts_init_fn __init_fn ( INIT_NORMAL ) = {