== Question Part ==
Can those customs signals be implemented with ioctl/sysctl api or
other standard mechanism that would provide system compliance with
other OS?
How would that change impact future software porting to NuttX when its
big enough to run "big" applications known from our desktop platforms?
I'm not sure that I understand. The 31 signals work fine now: The
pre-defined signals as well has the real time signals. To increase the
number of signals means essentially that a signal set becomes an array.
Not really too complex.
Currently, up to 29 pre-defined signals could be enabled (although not
all are supported). If the limit is 31, then that leaves on 2 for real
time signal support.
Why use custom signals at all? :-P
Real time signals is a standard IPC. It is one of the most common IPCs
used in the OS. A common use is to signal a driver that and interrupt
level event has occurred.
Google for posix real time signals. There are lots of good tutorials
like: https://www.softprayog.in/programming/posix-real-time-signals-in-linux
== SciFi Part ==
If custom signals are necessary, maybe a bitmask could be used, or signal class?
For instance there could be 4 lower bits allocated for system signals
and 4 higher bits allocated for "custom" signals with no warranty of
interference? That would fit in one byte and should provide some sort
of backward compatibility for the system part but still "custom" part
may get collisions?
You are describing just how it works now. You are describing type
sigset_t. See include/signal.h
Maybe system signals could stay POSIX compliant (in adherence to
selected OS with stable API or a selected standard), while there would
be another group of custom signals marked in a way there would be no
collision?
Whatever change it may impact future porting to / from NuttX :-)
Real time signals aren't "custom." The are standard and are support
just like the pre-defined signals except that they have no default
actions. All of the standard signal APIs are support. They are
identical in all ways up to the point where the signal is delivered to
the recipient and the default action occurs. There also some small
differences in regard to which signals can be caught and which cannot.
Greg