Hi Olaf,

I do not understand why you destory the fifo immediately after you install
a handler for it in init_module ? I guess that is might be the problem.

Dingrong

on Wed, 14 Feb 2001, Olaf Petzold wrote:

> Hello,
>
> what's wrong with the following code. If I do a read op on user space the
> handler isn't called. If I read the man page right, the installed handler is
> called on all ops regardless read/write.
>
>  # uname -a
> Linux rtreg 2.2.17-rtl3b9 #2 Thu Dec 7 10:25:11 CET 2000 i686 unknown
>
> Thanks,
> Olaf
>
> --------------------------------------------
> #define RTF   0
>
> size_t number(void) { return RTF; }
>
> int rtfHandler(size_t fifo)
> {
>     size_t sz;
>     const char *msg = "Hallo World\n";
>     DBG("notify Rtf%d\n", fifo);
>     sz = strlen(msg);
>     rtf_put(number(), &sz, sizeof(sz));
>     rtf_put(number(), (void*)msg, sz);
>     return 0;
> }
>
> int init_module(void)
> {
>     int ret;
>     size_t sz = 4000;
>     (void)rtf_destroy(number());
>     if((ret = rtf_create(number(), sz)) < 0) {
>       ERROR("Error opening RTF%d\n", number());
>       return -1;
>     }
>     if((ret = rtf_create_handler(number(), &rtfHandler)) < 0) {
>       ERROR("Error installing handler on RTF%d\n", number());
>       (void)rtf_destroy(number());
>       return -1;
>
>     }
>     return 0;
> }
>
>
> void cleanup_module(void)
> {
>     (void)rtf_destroy(number());
> }
> -----------------
>
>

Reply via email to