On Wed, Feb 28, 2007 at 11:42:24AM -0800, Davide Libenzi (davidel@xmailserver.org) wrote: > On Wed, 28 Feb 2007, Chris Friesen wrote: > > > Davide Libenzi wrote: > > > > > struct async_syscall { > > > unsigned long nr_sysc; > > > unsigned long params[8]; > > > long *result; > > > }; > > > > > > And what would async_wait() return bak? Pointers to "struct async_syscall" > > > or pointers to "result"? > > > > Either one has downsides. Pointer to struct async_syscall requires that the > > caller keep the struct around. Pointer to result requires that the caller > > always reserve a location for the result. > > > > Does the kernel care about the (possibly rare) case of callers that don't > > want > > to pay attention to result? If so, what about adding some kind of > > caller-specified handle to struct async_syscall, and having async_wait() > > return the handle? In the case where the caller does care about the result, > > the handle could just be the address of result. > > Something like this (with async_wait() returning asynid's)? > > struct async_syscall { > long *result; > unsigned long asynid; > unsigned long nr_sysc; > unsigned long params[8]; > };
Having result pointer as NULL might imply that result is not interested in and thus it can be discarded and event async syscall will not be returned through aync_wait(). More flexible is having request flags field in the structure. > - Davide > -- Evgeniy Polyakov - 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/