summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/mips/clock/ckinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/mips/clock/ckinit.c')
-rw-r--r--c/src/lib/libcpu/mips/clock/ckinit.c61
1 files changed, 15 insertions, 46 deletions
diff --git a/c/src/lib/libcpu/mips/clock/ckinit.c b/c/src/lib/libcpu/mips/clock/ckinit.c
index 711b41cd09..315226362e 100644
--- a/c/src/lib/libcpu/mips/clock/ckinit.c
+++ b/c/src/lib/libcpu/mips/clock/ckinit.c
@@ -1,7 +1,8 @@
-/* ckinit.c
- *
+/*
* This file contains the clock driver initialization for the IDT 4650.
- *
+ */
+
+/*
* Author: Craig Lebakken <craigl@transition.com>
*
* COPYRIGHT (c) 1996 by Transition Networks Inc.
@@ -30,15 +31,12 @@
/*
* Rather than deleting this, it is commented out to (hopefully) help
* the submitter send updates.
- *
- * static char _sccsid[] = "@(#)ckinit.c 08/20/96 1.3\n";
*/
-
#include <stdlib.h>
#include <rtems.h>
-#include <rtems/libio.h>
+#include <rtems/clockdrv.h>
#define EXT_INT5 0x8000 /* external interrupt 5 */
@@ -49,15 +47,10 @@ extern uint32_t bsp_clicks_per_microsecond;
/* to avoid including the bsp */
mips_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
-void Clock_exit( void );
-rtems_isr Clock_isr( rtems_vector_number vector );
-
-
/*
* The interrupt vector number associated with the clock tick device
* driver.
*/
-
#define CLOCK_VECTOR_MASK EXT_INT5
#define CLOCK_VECTOR 0x7
@@ -65,7 +58,6 @@ rtems_isr Clock_isr( rtems_vector_number vector );
* Clock_driver_ticks is a monotonically increasing counter of the
* number of clock ticks since the driver was initialized.
*/
-
volatile uint32_t Clock_driver_ticks;
/*
@@ -75,42 +67,30 @@ volatile uint32_t Clock_driver_ticks;
* length of time between the user configured microseconds per tick
* has passed.
*/
-
uint32_t Clock_isrs; /* ISRs until next tick */
/*
- * These are set by clock driver during its init
- */
-
-rtems_device_major_number rtems_clock_major = ~0;
-rtems_device_minor_number rtems_clock_minor;
-
-/*
* The previous ISR on this clock tick interrupt vector.
*/
-
rtems_isr_entry Old_ticker;
-void Clock_exit( void );
-
static uint32_t mips_timer_rate = 0;
/*
* Isr Handler
*/
-
-rtems_isr Clock_isr(
+static rtems_isr Clock_isr(
rtems_vector_number vector
)
{
/*
- * bump the number of clock driver ticks since initialization
- *
- * determine if it is time to announce the passing of tick as configured
- * to RTEMS through the rtems_clock_tick directive
- *
- * perform any timer dependent tasks
- */
+ * bump the number of clock driver ticks since initialization
+ *
+ * determine if it is time to announce the passing of tick as configured
+ * to RTEMS through the rtems_clock_tick directive
+ *
+ * perform any timer dependent tasks
+ */
/* refresh the internal CPU timer */
mips_set_timer( mips_timer_rate );
@@ -140,8 +120,7 @@ rtems_isr User_Clock_isr(
* Install a clock tick handleR and reprograms the chip. This
* is used to initially establish the clock tick.
*/
-
-void Install_clock(
+static void Install_clock(
rtems_isr_entry clock_isr
)
{
@@ -153,10 +132,10 @@ void Install_clock(
Clock_isrs = rtems_configuration_get_milliseconds_per_tick();
Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 );
+
/*
* Hardware specific initialize goes here
*/
-
mips_timer_rate = rtems_configuration_get_microseconds_per_tick() *
bsp_clicks_per_microsecond;
mips_set_timer( mips_timer_rate );
@@ -165,14 +144,12 @@ void Install_clock(
/*
* Schedule the clock cleanup routine to execute if the application exits.
*/
-
atexit( Clock_exit );
}
/*
* Clean up before the application exits
*/
-
void Clock_exit( void )
{
/* mips: turn off the timer interrupts */
@@ -184,7 +161,6 @@ void Clock_exit( void )
*
* Device driver entry point for clock tick driver initialization.
*/
-
rtems_device_driver Clock_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
@@ -193,12 +169,5 @@ rtems_device_driver Clock_initialize(
{
Install_clock( Clock_isr );
- /*
- * make major/minor avail to others such as shared memory driver
- */
-
- rtems_clock_major = major;
- rtems_clock_minor = minor;
-
return RTEMS_SUCCESSFUL;
}