I want to know what to change,
that my filter would work under 6.3.2 and 6.3.0 ?
/I found that resmgr_attach() works good if I change parameter:
resmgr_attr.msg_max_size = 2*1024; - returns error
resmgr_attr.msg_max_size = 1024+512; - ok
I think you have to install SP2 first, and then the core update to 6.3.2:
The Neutrino Core OS 6.3.2 is part of the QNX Momentics development suite. This update contains a number of changes to the QNX Neutrino RTOS to improve virtual memory management, increase performance and ease debugging. For use with QNX Momentics 6.3.0 Service Pack 1 or 2.
What is the errno message from the failed resmgr_attach() call?
Hm, no sparkling idea right now. It seems that the resmgr_attr.msg_max_size must be less than 2048 in this release but that is really unthinkable. Can you leave the lower value in the code?
This value is not the maximum message size you can receive, it is the largest portion a message can have. So when you set this member to 1024 you can still receive a 25K message using resmgr_msgread().
Maybe you write directly to QNX support what the relevant changes are in 6.3.2. The error code “Illegal Argument” is not even listed in the errors section of resmgr_attach()
Alternatively, you can paste the complete code sequence for resource manager setup, maybe we can see something strange.
First I create null resmgr - resmgr_attach() with a NULL path
(to initialize dispatch to receive messages and create the channel)
and next I call (one or many more times) resmgr_attach() with “normal” path;
The problem was in first (NULL) resmgr_attach() call:
resmgr_attach(
resmgr_dpp, // dispatch handle //
&resmgr_attr, // resource manager attrs //
…
and now next calls resmgr_attach() with the same resmgr_attr
/[…], resmgr_attr.msg_max_size = 2048
dont generate any errors!
Just a question out of curiosity: What is the purpose of creating a “null” resource manager first and then one or more with real paths? The channel is created in dispatch_create() .
What is the purpose of creating a “null” resource manager ?
ans.:
“[…] If you wish, you can do a resmgr_attach() with a NULL path.
This has the effect of initializing dispatch to receive messages
and creates the channel among other things.”