|
From: <jmk...@us...> - 2003-08-24 09:38:27
|
Update of /cvsroot/emc/rtapi/examples/extint
In directory sc8-pr-cvs1:/tmp/cvs-serv3121/examples/extint
Modified Files:
extint.c
Log Message:
Added module ID, now rtapi_exit() should remove all items allocated by the module. Added a mutex to protect RTAPI internal data from simultaneous access. Basic testing complete, needs more detailed testing.
Index: extint.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/extint/extint.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** extint.c 5 Aug 2003 03:51:00 -0000 1.3
--- extint.c 24 Aug 2003 09:38:24 -0000 1.4
***************
*** 12,15 ****
--- 12,16 ----
#define PARPORT_IRQ 7
+ static int module = 0; /* the module ID */
static int timer_count = 0; /* the output variable */
***************
*** 27,39 ****
int retval;
! /* set up ISR */
! retval = rtapi_free_interrupt_handler(PARPORT_IRQ);
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint init: rtapi_free_interrupt returned %d\n", retval );
! /*return -1;*/
}
! retval = rtapi_assign_interrupt_handler(PARPORT_IRQ, parport_irq_handler);
if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint init: rtapi_assign_interrupt_handler returned %d\n", retval );
return -1;
}
--- 28,40 ----
int retval;
! module = rtapi_init("EXTINT");
! if ( module != RTAPI_SUCCESS ) {
! rtapi_print("extint init: rtapi_init returned %d\n", module );
! return -1;
}
! /* set up ISR */
! retval = rtapi_irq_new(PARPORT_IRQ, module, parport_irq_handler);
if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint init: rtapi_irq_new returned %d\n", retval );
return -1;
}
***************
*** 62,72 ****
/* clear ISR */
retval = rtapi_disable_interrupt(PARPORT_IRQ);
! if ( retval != RTAPI_SUCCESS ) {
rtapi_print("extint exit: rtapi_disable_interrupt returned %d\n", retval );
return;
}
! retval = rtapi_free_interrupt_handler(PARPORT_IRQ);
if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint exit: rtapi_disable_interrupt returned %d\n", retval );
return;
}
--- 63,73 ----
/* clear ISR */
retval = rtapi_disable_interrupt(PARPORT_IRQ);
! if ( retval < 0 ) {
rtapi_print("extint exit: rtapi_disable_interrupt returned %d\n", retval );
return;
}
! retval = rtapi_irq_delete(PARPORT_IRQ);
if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint exit: rtapi_irq_delete returned %d\n", retval );
return;
}
***************
*** 74,77 ****
rtapi_print("extint exit: interrupt count is %d\n", timer_count);
! /* rtapi_app_return(); */
}
--- 75,82 ----
rtapi_print("extint exit: interrupt count is %d\n", timer_count);
! retval = rtapi_exit(module);
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("extint exit: rtapi_exit returned %d\n", retval );
! return;
! }
}
|