Date: Sun, 13 Oct 1996 13:47:15 -0700 (MST) From: Richard Straka <straka@inficad.com> To: questions@FreeBSD.ORG Subject: Registering ISR for LKM Device Driver Message-ID: <Pine.BSI.3.91.961013132349.1989A-100000@inficad.com>
next in thread | raw e-mail | index | archive | help
I am in the process of writing several device drivers for FreeBSD to interact with custom realtime test equipment. This hardware is interrupt driven and hence, I have to register the interrupt service routines with the kernel. It is highly desirable to use the Loadable Module mechanism for inclusion of the device drivers into the kernel. I have the following questions. - Where can I get a template of an LKM device driver that uses interrupts? - What is the relationship between register_intr(), register_imask(), and update_intr_masks() in /sys/i386/isa/isa.c? Can I use these calls in some sequence to register my LKM ISR's? Looking at the code, some of the functionality of these 3 routines look redundant. - How do I unregister the interrupts and clean up the interrupt masks when I unload the module. Does the function unregister_intr() from isa.c take care of this for me? - What is the distinction between a fast and slow interrupt? Some of the interrupts from my test equipment may be rather high frequency >1000HZ and require low latency. Do I need to take additional precautions in my drivers if I use fast interrupts? Any help on these issues would be greatly appreciated. Thanks in advance. Richard Straka straka@inficad.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.91.961013132349.1989A-100000>