Ignore:
Timestamp:
Sep 11, 1995, 7:35:39 PM (26 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
ced11f99
Parents:
5072b07
Message:

The word "RTEMS" almost completely removed from the core.

Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.

Configuration parameter maximum_devices added.

Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.

Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.

Added user extension for post-switch.

Utilized user extensions to implement API specific functionality
like signal dispatching.

Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.

Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.

All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.

Updated spsize to reflect new and moved variables.

Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.

Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/m68k/gen68302/clock/ckinit.c

    r5072b07 r3a4ae6c  
    2121#include <stdlib.h>                     /* for atexit() */
    2222
    23 #include <rtems.h>
    2423#include <bsp.h>
    25 #include <clockdrv.h>
     24#include <rtems/libio.h>
     25
    2626#include "m68302.h"
    2727
     28#define CLOCK_VECTOR 137
    2829
    2930#define TMR1_VAL (  RBIT_TMR_RST        /* software reset the timer */\
     
    5051rtems_unsigned32 Clock_isrs;
    5152
     53void Clock_exit( void );
     54 
     55/*
     56 * These are set by clock driver during its init
     57 */
     58 
     59rtems_device_major_number rtems_clock_major = ~0;
     60rtems_device_minor_number rtems_clock_minor;
    5261
    53 rtems_device_driver Clock_initialize(
    54   rtems_device_major_number major,
    55   rtems_device_minor_number minor,
    56   void *pargp,
    57   rtems_id tid,
    58   rtems_unsigned32 *rval
     62/*
     63 *  ISR Handler
     64 */
     65
     66rtems_isr Clock_isr(
     67  rtems_vector_number vector
    5968)
    6069{
    61   Install_clock( Clock_isr );
     70  Clock_driver_ticks += 1;
     71
     72  m302.reg.isr  = RBIT_ISR_TIMER1;      /* clear in-service bit */
     73  m302.reg.ter1 = (RBIT_TER_REF | RBIT_TER_CAP); /* clear timer intr request */
     74
     75  if ( Clock_isrs == 1 ) {
     76    rtems_clock_tick();
     77    Clock_isrs = BSP_Configuration.microseconds_per_tick / 1000;
     78  }
     79  else
     80    Clock_isrs -= 1;
    6281}
    63 
    6482
    6583void Install_clock(
     
    7290
    7391  if ( BSP_Configuration.ticks_per_timeslice ) {
    74 /*  set_vector( clock_isr, 137, 1 );*/
     92/*  set_vector( clock_isr, CLOCK_VECTOR, 1 );*/
    7593
    7694    m302.reg.trr1 = TRR1_VAL;           /* set timer reference register */
     
    85103}
    86104
     105void ReInstall_clock(
     106  rtems_isr_entry clock_isr
     107)
     108{
     109  rtems_unsigned32 isrlevel;
     110 
     111  rtems_interrupt_disable( isrlevel );
     112   /* (void) set_vector( clock_isr, CLOCK_VECTOR, 1 ); */
     113  rtems_interrupt_enable( isrlevel );
     114}
    87115
    88116void Clock_exit( void )
     
    93121  }
    94122}
     123
     124rtems_device_driver Clock_initialize(
     125  rtems_device_major_number major,
     126  rtems_device_minor_number minor,
     127  void *pargp
     128)
     129{
     130  Install_clock( Clock_isr );
     131 
     132  /*
     133   * make major/minor avail to others such as shared memory driver
     134   */
     135 
     136  rtems_clock_major = major;
     137  rtems_clock_minor = minor;
     138 
     139  return RTEMS_SUCCESSFUL;
     140}
     141 
     142rtems_device_driver Clock_control(
     143  rtems_device_major_number major,
     144  rtems_device_minor_number minor,
     145  void *pargp
     146)
     147{
     148    rtems_libio_ioctl_args_t *args = pargp;
     149 
     150    if (args == 0)
     151        goto done;
     152 
     153    /*
     154     * This is hokey, but until we get a defined interface
     155     * to do this, it will just be this simple...
     156     */
     157 
     158    if (args->command == rtems_build_name('I', 'S', 'R', ' '))
     159    {
     160        Clock_isr( CLOCK_VECTOR);
     161    }
     162    else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
     163    {
     164        ReInstall_clock(args->buffer);
     165    }
     166 
     167done:
     168    return RTEMS_SUCCESSFUL;
     169}
     170
Note: See TracChangeset for help on using the changeset viewer.