Hi,
I have written a very simple filter module for io-net but I am getting
following error while I try to load it.
\
mount -vvvv -Tio-net nfm-filter.so
Parsed: mount from [nfm-filter.so] mount on [NULL] type
exec: mount_io-net -o implied -o nostat nfm-filter.so /
Using internal mount (mount_io-net not found)
Type [io-net] Flags 0x80080000
Device [nfm-filter.so] Directory [/]
Options []
mount: Can’t mount / (type io-net)
mount: Possible reason: No such device or address
Please help me. I have tried my module with absolute path also i.e.
mount -vvvv -Tio-net /tmp/active/bin/nfm-filter.so
but it also gives same error.
Following is the code snippet that io-net will access from my module.
static io_net_registrant_t filter_reg = {
_REG_FILTER_ABOVE,
“nfm_filter.so”,
“en”,
“en”,
NULL,
&filter_funcs,
0
};
static int my_filter_init(void *dll_hdl, dispatch_t *dpp,
io_net_self_t *ion, char *options)
{
filter_dll_hdl = dll_hdl;
filter_ion = ion;
filter_dpp = dpp;
if(filter_ion->reg(filter_dll_hdl, &filter_reg,
&filter_reg_hdl, NULL, NULL) == -1)
{
fprintf(stderr, "\nreg-ERROR ");
return (-1);
}
}
ashish19 <ashish_its@yahoo.co-dot-in.no-spam.invalid> wrote:
Hi,
I have written a very simple filter module for io-net but I am getting
following error while I try to load it.
mount -vvvv -Tio-net nfm-filter.so
Parsed: mount from [nfm-filter.so] mount on [NULL] type
exec: mount_io-net -o implied -o nostat nfm-filter.so /
Using internal mount (mount_io-net not found)
Type [io-net] Flags 0x80080000
Device [nfm-filter.so] Directory [/]
Options []
mount: Can’t mount / (type io-net)
mount: Possible reason: No such device or address
Please help me. I have tried my module with absolute path also i.e.
mount -vvvv -Tio-net /tmp/active/bin/nfm-filter.so
but it also gives same error.
Following is the code snippet that io-net will access from my module.
static io_net_registrant_t filter_reg = {
_REG_FILTER_ABOVE,
“nfm_filter.so”,
“en”,
“en”,
NULL,
&filter_funcs,
0
};
static int my_filter_init(void *dll_hdl, dispatch_t *dpp,
io_net_self_t *ion, char *options)
{
filter_dll_hdl = dll_hdl;
filter_ion = ion;
filter_dpp = dpp;
if(filter_ion->reg(filter_dll_hdl, &filter_reg,
&filter_reg_hdl, NULL, NULL) == -1)
{
fprintf(stderr, "\nreg-ERROR ");
return (-1);
}
}
Do you have a io_net_dll_entry symbol? This struct is the
initial entry point io-net looks for:
io_net_dll_entry_t io_net_dll_entry = {
2,
my_filter_init,
NULL
};
io-net should then at least poke your my_filter_init() func.
Sean Boudreau <seanb@qnx.com> wrote:
ashish19 <> ashish_its@yahoo.co-dot-in.no-spam.invalid> > wrote:
Hi,
I have written a very simple filter module for io-net but I am getting
following error while I try to load it.
mount -vvvv -Tio-net nfm-filter.so
Parsed: mount from [nfm-filter.so] mount on [NULL] type
exec: mount_io-net -o implied -o nostat nfm-filter.so /
Using internal mount (mount_io-net not found)
Type [io-net] Flags 0x80080000
Device [nfm-filter.so] Directory [/]
Options []
mount: Can’t mount / (type io-net)
mount: Possible reason: No such device or address
Please help me. I have tried my module with absolute path also i.e.
mount -vvvv -Tio-net /tmp/active/bin/nfm-filter.so
but it also gives same error.
Following is the code snippet that io-net will access from my module.
static io_net_registrant_t filter_reg = {
_REG_FILTER_ABOVE,
“nfm_filter.so”,
“en”,
“en”,
NULL,
&filter_funcs,
0
};
static int my_filter_init(void *dll_hdl, dispatch_t *dpp,
io_net_self_t *ion, char *options)
{
filter_dll_hdl = dll_hdl;
filter_ion = ion;
filter_dpp = dpp;
if(filter_ion->reg(filter_dll_hdl, &filter_reg,
&filter_reg_hdl, NULL, NULL) == -1)
{
fprintf(stderr, "\nreg-ERROR ");
return (-1);
}
}
Do you have a io_net_dll_entry symbol? This struct is the
initial entry point io-net looks for:
io_net_dll_entry_t io_net_dll_entry = {
2,
my_filter_init,
NULL
};
io-net should then at least poke your my_filter_init() func.
And your my_filter_init() should return EOK on success. Looks
like you’re running off the end and returning void.
-seanb