summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/force386/clock/ckinit.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-05 14:20:12 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-05 14:20:12 +0000
commit6d81ea35e62ae048904c9d5e33cd60c4474c3c47 (patch)
tree06cdf4b82a39109888de16e25cab78a7dfd9e957 /c/src/lib/libbsp/i386/force386/clock/ckinit.c
parentAdded wrapup directory. (diff)
downloadrtems-6d81ea35e62ae048904c9d5e33cd60c4474c3c47.tar.bz2
Removed targets and configurations that are no longer functional
and not likely to become so. Comments on each configuration are below. + Force CPU386 - This BSP was developed as part of the initial port of RTEMS to the i386. This board has been unavailable for a long time now. + GO32 - This BSP and some CPU code supported djgpp v1.x. This version is now quite old. No one has stepped forward to update the code to v2.x which may be technically impossible anyway. More importantly, go32 has been superceded by the pc386 BSP.
Diffstat (limited to 'c/src/lib/libbsp/i386/force386/clock/ckinit.c')
-rw-r--r--c/src/lib/libbsp/i386/force386/clock/ckinit.c135
1 files changed, 0 insertions, 135 deletions
diff --git a/c/src/lib/libbsp/i386/force386/clock/ckinit.c b/c/src/lib/libbsp/i386/force386/clock/ckinit.c
deleted file mode 100644
index 947b777654..0000000000
--- a/c/src/lib/libbsp/i386/force386/clock/ckinit.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Clock_initialize
- *
- * This routine initializes the Motorola MFP 68901 on the
- * FORCE CPU386 board. The tick frequency is 1 millisecond.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <bsp.h>
-
-#include <rtems/libio.h>
-
-#include <stdlib.h>
-
-#define CLOCK_VECTOR 0x38
-
-rtems_unsigned32 Clock_isrs; /* ISRs until next tick */
-
-volatile rtems_unsigned32 Clock_driver_ticks;
-
-rtems_isr_entry Old_ticker;
-
-void Clock_exit( void );
-
-/*
- * These are set by clock driver during its init
- */
-
-rtems_device_major_number rtems_clock_major = ~0;
-rtems_device_major_number rtems_clock_minor = 0;
-
-/*
- * This is the ISR handler.
- */
-
-rtems_isr Clock_isr(
- rtems_vector_number vector
-)
-{
- /* enable_tracing(); */
- Clock_driver_ticks += 1;
- if ( Clock_isrs == 1 ) {
- rtems_clock_tick();
- Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000;
- }
- else
- Clock_isrs -= 1;
-}
-
-void Install_clock(
- rtems_isr_entry clock_isr
-)
-{
- Clock_driver_ticks = 0;
- Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000;
-
- if ( BSP_Configuration.ticks_per_timeslice ) {
- Old_ticker = ( rtems_isr_entry ) set_vector( clock_isr, CLOCK_VECTOR, 1 );
- outport_byte( TBCR, 0x14 ); /* reset it, delay mode, 50X */
- outport_byte( TBDR, 0x50 ); /* 1 millisecond */
- outport_byte( IERA, 0x41 ); /* enable interrupt for B */
- }
- atexit( Clock_exit );
-}
-
-void Clock_exit( void )
-{
- if ( BSP_Configuration.ticks_per_timeslice ) {
- outport_byte( TBCR, 0x00 ); /* initial value */
- outport_byte( IERA, 0x40 ); /* disable interrupt */
- /* ??? Is "do not restore old vector" causing problems? */
- }
-}
-
-rtems_device_driver Clock_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *pargp
-)
-{
- 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;
-}
-
-rtems_device_driver Clock_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *pargp
-)
-{
- rtems_unsigned32 isrlevel;
- rtems_libio_ioctl_args_t *args = pargp;
-
- if (args == 0)
- goto done;
-
- /*
- * This is hokey, but until we get a defined interface
- * to do this, it will just be this simple...
- */
-
- if (args->command == rtems_build_name('I', 'S', 'R', ' '))
- {
- Clock_isr(CLOCK_VECTOR);
- }
- else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
- {
- rtems_interrupt_disable( isrlevel );
- (void) set_vector( args->buffer, CLOCK_VECTOR, 1 );
- rtems_interrupt_enable( isrlevel );
- }
-
-done:
- return RTEMS_SUCCESSFUL;
-}