and btw i see that you open libs by hand also when __MORPHOS__ defines and not with libnix autoinit.so no need for libnix too.
When using Amiga native APIs (i.e. using MUI GUI) I prefer opening libraries manually. In SDL ports I dont because I dont want Amiga specific code to otherwise fully portable application.
I get also the idea just add the alloced memblock at the beginnung or end of the list tc_MemEntry that contain the userdata.
You can not guarantee it is compatible with applications using tc_MemEntry. They can add entries to head or tail of list at their will or even remove existing entries.
but i dont know how AOS work and add this allocate memblock to the list and on what place it come and of it is always sure that the block is at 1. or last place when i add it here.
Amiga does not do much with it. Applications itself manage tc_MemEntry.
Its also possible to change the process create function so it add additional space for that value.
task cant use dos, so ixemul funcs need no userdata
So you have to hack the OS.
Its possible to add the iserdata address at the end of stack range.only need not forget when use stackswap to copy this value too.but here can use a function ix_stackswap that work more easy as the AOS func.
But again you are putting restrictions. Ixemul works as long as developer does not do X but uses Y instead.
so you see no reason to enhance libnix and not use ixemul
And how about sockets? Can I assume WaitSelect() works?