diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-08-17 19:51:51 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-08-17 19:51:51 +0000 |
commit | b06e68ef1f6df69cc86d72356c3a002054a35fad (patch) | |
tree | 722b2da3cc83f1cf03019cab8cf895a509eb6801 /c/src/libchip | |
parent | variable length messages (diff) | |
download | rtems-b06e68ef1f6df69cc86d72356c3a002054a35fad.tar.bz2 |
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
Diffstat (limited to 'c/src/libchip')
-rw-r--r-- | c/src/libchip/shmdr/poll.c | 23 | ||||
-rw-r--r-- | c/src/libchip/shmdr/setckvec.c | 10 | ||||
-rw-r--r-- | c/src/libchip/shmdr/shm_driver.h | 3 |
3 files changed, 23 insertions, 13 deletions
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 <rtems.h> #include <rtems/sysstate.h> +#include <rtems/libio.h> + #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 <rtems.h> +#include <rtems/libio.h> + #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 <clockdrv.h> + #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 */ |