On Thu, 7 Jun 2007, Matt Mackall wrote: > > First, how does this work in-kernel? Does it set a flag in the thread > struct that magically gets used in the actual syscall? Or do we pass > flags down to the sys_foo() function in some manner?
Set a flag in the thread-struct. In fact, that's how "access()" already works. And yes, syslets would need to have their own thread-structs and/or save/restore the thing. > Second, I think we're likely to run out of flag bits really quickly as > this is a good dumping spot for patching up our many slightly > brain-damaged APIs (be they POSIX or Linux-specific). Well, I do suspect that we'd need to basically make the flags be per-system call. With "common features" (ie a system call that doesn't return a file descriptor would re-use the bit for "nonlinear-fd" for something else, while a system call that doesn't do path lookup would use all the LOOKUP_xyzzy bits for something else). I agree that if we kept flags _totally_ separate, we'd run out of them really quickly. But I don't think we want to ever be in the situation where _one_ set of system calls would need that many flags. If we get there, we'd really be much better off with a new system call! > Third, can I do sys_indirect(sys_indirect(foo, args), flags1), flags2)? I'd say no. > Fourth, can we do sys_indirect(foo, args, flags | ASYNC) and get most > of the way to merging this with the syslet proposal? I think that may well be a really good idea. Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/