Hi Nathan,
I've tried out pre6e and found that the rtlsigtimer_app in the
regression directory will crash my computer when calling
rtlinux_sigprocmask. When these calls are removed, the test will work.
It looks like there a minor problem with the logic for testing the
results. I changed it to:
/* check that the timers went off the right number of times */
if ((*marker_ptr != 8) || (*marker2_ptr != 16))
{
....
}
(ditto for the single periodic timer test)
The results showed that each periodic task would run just once
(*marker2_ptr was 1).
I found the same with a test program I was using. It worked okay under
pre6d.
Any ideas? Need more info?
cheers,
stuart warren
This is some code that runs correctly under pre6d but only increments to
1 under pre6e... (ie the same behaviour as the modified regression
program)
----------------------------------------------------------
#include <sys/ioctl.h>
#include <linux/isdn.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
/* 3.0pre6d uses rtl_signal.h */
//#include <rtl_signal.h>
/* 3.0pre6e uses rtlinux_signal.h */
#include <rtlinux_signal.h>
/* comment out for 3.0pre6e */
//#define RTLINUX_SIGTIMER0 RTL_SIGTIMER0
//#define RTLINUX_SA_RESETHAND RTL_SA_RESETHAND
//#define RTLINUX_SIG_IGN RTL_SIG_IGN
int Send_Data;
void transmission_handler(int unused)
{
if(Send_Data < 10000) /* arbitrary */
Send_Data++;
}
int main()
{
struct rtlinux_sigaction sig;
Send_Data = 0;
sig.sa_flags = RTLINUX_SA_RESETHAND;
sig.sa_period = NSECS_PER_SEC/4;
sig.sa_handler = transmission_handler;
if (rtlinux_sigaction(RTLINUX_SIGTIMER0, &sig, NULL)) {
printf("Coundn't get timer\n");
perror("rtlinux_sigaction");
return -1;
}
printf("\n");
while(1) {
printf("Send_Data = %d\n", Send_Data);
usleep(20000);
}
sig.sa_handler = RTLINUX_SIG_IGN;
rtlinux_sigaction(RTLINUX_SIGTIMER0, &sig, NULL);
return EXIT_SUCCESS;
}
----------------------------------------------------------
Nathan Simons wrote:
>
> On Wed, Aug 02, 2000 at 08:53:59AM +1000, Stuart Warren wrote:
> > Now that I've woken up...
> >
> > For 6e, instead of removing the librtl* files in /usr/lib, it's probably
> > better to change the makefile so it generates librtl.a and librtlpSOS.a
> > instead of librtlinux*. Also, I modified the make install rule so that
> > depmod included the path to /sbin/ ditto for the other modutils in
> > ./scripts/insrtl.
>
> Nope, my bad. i forgot to change the install rule in the toplevel
> Makefile. We decided to make the prefix for the libraries "librtlinux" to
> keep things consistent (rtlinux_sigaction() is in librtlinux.a, with
> rtlinux_signal.h being the include file).
>
> --
> Nathan Paul Simons, Programmer for FSMLabs
> http://www.fsmlabs.com/
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> ---
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/