From b06e68ef1f6df69cc86d72356c3a002054a35fad Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 17 Aug 1995 19:51:51 +0000 Subject: Numerous miscellaneous features incorporated from Tony Bennett (tbennett@divnc.com) including the following major additions: + variable length messages + named devices + debug monitor + association tables/variables --- c/src/libchip/shmdr/poll.c | 23 ++++++++++++----------- c/src/libchip/shmdr/setckvec.c | 10 ++++++++-- c/src/libchip/shmdr/shm_driver.h | 3 +++ 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'c/src/libchip') diff --git a/c/src/libchip/shmdr/poll.c b/c/src/libchip/shmdr/poll.c index 349a964356..cdc1991f1f 100644 --- a/c/src/libchip/shmdr/poll.c +++ b/c/src/libchip/shmdr/poll.c @@ -16,20 +16,24 @@ * to the copyright license under the clause at DFARS 252.227-7013. This * notice must appear in all copies of this file and its derivatives. * - * poll.c,v 1.2 1995/05/09 20:22:57 joel Exp + * $Id$ */ #include #include +#include + #include "shm.h" -#include "clockdrv.h" void Shm_Poll() { rtems_unsigned32 tmpfront; + rtems_libio_ioctl_args_t args; - Clock_isr( 0 ); /* invoke standard clock ISR */ - + /* invoke clock isr */ + args.iop = 0; + args.command = rtems_build_name('I', 'S', 'R', ' '); + (void) rtems_io_control(rtems_clock_major, rtems_clock_minor, &args); /* * Check for msgs only if we are "up" @@ -39,14 +43,11 @@ void Shm_Poll() if (_System_state_Is_up(_System_state_Get())) { - /* enable_tracing(); */ - /* ticks += 1; */ - Shm_Lock( Shm_Local_receive_queue ); tmpfront = Shm_Local_receive_queue->front; - Shm_Unlock( Shm_Local_receive_queue ); - if ( Shm_Convert(tmpfront) != Shm_Locked_queue_End_of_list ) { - rtems_multiprocessing_announce(); - Shm_Interrupt_count++; + if ( Shm_Convert(tmpfront) != Shm_Locked_queue_End_of_list ) + { + rtems_multiprocessing_announce(); + Shm_Interrupt_count++; } } } diff --git a/c/src/libchip/shmdr/setckvec.c b/c/src/libchip/shmdr/setckvec.c index 0b5e306dab..bb3a19e1c8 100644 --- a/c/src/libchip/shmdr/setckvec.c +++ b/c/src/libchip/shmdr/setckvec.c @@ -19,10 +19,16 @@ */ #include +#include + #include "shm.h" -#include "clockdrv.h" rtems_isr Shm_setclockvec() { - ReInstall_clock( Shm_Poll ); + rtems_libio_ioctl_args_t args; + args.iop = 0; + args.command = rtems_build_name('N', 'E', 'W', ' '); + args.buffer = (void *) Shm_Poll; + + (void) rtems_io_control(rtems_clock_major, rtems_clock_minor, &args); } diff --git a/c/src/libchip/shmdr/shm_driver.h b/c/src/libchip/shmdr/shm_driver.h index 82b4c00b7b..c223055be6 100644 --- a/c/src/libchip/shmdr/shm_driver.h +++ b/c/src/libchip/shmdr/shm_driver.h @@ -20,6 +20,8 @@ #ifndef __SHM_h #define __SHM_h +#include + #ifdef __cplusplus extern "C" { #endif @@ -518,6 +520,7 @@ extern rtems_mpci_table MPCI_table; rtems_mpci_table MPCI_table = { 100000, /* default timeout value in ticks */ + MAX_PACKET_SIZE, /* maximum packet size */ Shm_Initialization, /* initialization procedure */ Shm_Get_packet, /* get packet procedure */ Shm_Return_packet, /* return packet procedure */ -- cgit v1.2.3