Hello,
I have a problem finding a solution to executing a function (or different
functions) that is seated in another process-space than the cause for the
function call. Sharing DATA in different process spaces is done by using QNX
shared memory facilities. But how do I create a shared memory region for
execution of FUNCTIONs?
In detail:
I have built a communication interface driver module that is accessible as a
QNX resource. In normal operation a user-process accesses this driver module
to execute certain driver functions seated inside the driver process space.
The driver module additionally receives interrupts from the communication
interface and performs certain processing… Now I want this driver to
execute USER DEFINED functions as well. That is, the user compiles and
builds his user-application and defines in it functions that are to be
executed when the driver-application receives a certain trigger from the
communication interface (e.g. an interrupt).
With a system that operates without an operating system, this would be no
problem because there are no process-memory restrictions. So every part of
each program could access every memory location and thus start any function
in the global memory space. But with QNX there are memory restrictions so
that in the normal case only process-internal functions can be executed.
Does somebody know how a concept for the execution of non-process functions
could look like?
Regards.
Nnamdi