summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/unix/posix/clock/clock.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/unix/posix/clock/clock.c')
-rw-r--r--c/src/lib/libbsp/unix/posix/clock/clock.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/c/src/lib/libbsp/unix/posix/clock/clock.c b/c/src/lib/libbsp/unix/posix/clock/clock.c
index da0dd46807..3e05b694a7 100644
--- a/c/src/lib/libbsp/unix/posix/clock/clock.c
+++ b/c/src/lib/libbsp/unix/posix/clock/clock.c
@@ -31,30 +31,18 @@ rtems_unsigned32 Clock_driver_vector;
rtems_device_major_number rtems_clock_major = ~0;
rtems_device_minor_number rtems_clock_minor;
-void
-Install_clock(rtems_isr_entry clock_isr)
+void Install_clock(rtems_isr_entry clock_isr)
{
Clock_driver_ticks = 0;
- (void)set_vector(clock_isr, Clock_driver_vector, 1);
+ (void) set_vector( clock_isr, Clock_driver_vector, 1 );
_CPU_Start_clock( BSP_Configuration.microseconds_per_tick );
atexit(Clock_exit);
}
-void
-ReInstall_clock(rtems_isr_entry new_clock_isr)
-{
- rtems_unsigned32 isrlevel = 0;
-
- rtems_interrupt_disable(isrlevel);
- (void)set_vector(new_clock_isr, Clock_driver_vector, 1);
- rtems_interrupt_enable(isrlevel);
-}
-
-void
-Clock_isr(int vector)
+void Clock_isr(int vector)
{
Clock_driver_ticks++;
rtems_clock_tick();
@@ -65,16 +53,14 @@ Clock_isr(int vector)
* Remove the clock signal
*/
-void
-Clock_exit(void)
+void Clock_exit(void)
{
_CPU_Stop_clock();
- (void)set_vector(0, Clock_driver_vector, 1);
+ (void) set_vector( 0, Clock_driver_vector, 1 );
}
-rtems_device_driver
-Clock_initialize(
+rtems_device_driver Clock_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *pargp
@@ -99,6 +85,7 @@ rtems_device_driver Clock_control(
void *pargp
)
{
+ rtems_unsigned32 isrlevel;
rtems_libio_ioctl_args_t *args = pargp;
if (args == 0)
@@ -115,7 +102,9 @@ rtems_device_driver Clock_control(
}
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
{
- ReInstall_clock(args->buffer);
+ rtems_interrupt_disable( isrlevel );
+ (void) set_vector( args->buffer, Clock_driver_vector, 1 );
+ rtems_interrupt_enable( isrlevel );
}
done: