On Aug 3, 2012, at 10:35 PM, matthew green wrote: > >> Module Name: src >> Committed By: matt >> Date: Fri Aug 3 18:08:02 UTC 2012 >> >> Modified Files: >> src/sys/kern: makesyscalls.sh >> src/sys/sys: systm.h >> >> Log Message: >> If any argument of a syscall is a pointer, set SYCALL_ARG_PTR as a flag. > > hmmm... what are you gonna do with this? :-)
Not completely sure but I was thinking that when before a netbsd emulation loads itself into execsw it could go through the list of sysent structure, see how many don't have PTRs and then allocate a new sysent structure, copy its into it, and replace the calls of its sysent that don't use pointers with the ones from emul_netbsd's sysent array. Now having a string_t or netbsd32_string_t instead of using const char * would help things like open and other pathname using syscalls and remove ARG_PTR from them since the PTR they use isn't really important.