Thread (27 messages) flat view 27 messages, 8 authors, 2006-08-23

Re: [take12 0/3] kevent: Generic event handling mechanism.

From: Evgeniy Polyakov <hidden>
Date: 2006-08-23 10:21:49
Also in: lkml

On Wed, Aug 23, 2006 at 11:49:22AM +0200, Jari Sundell (sundell.software@gmail.com) wrote:
quoted
quoted
Only void * I'm seeing belongs to the user, (udata) perhaps you are
talking of something different?
Yes, exactly about it.

I put union {
       u32 a[2];
       void *b;
}
epcially to eliminate that problem.
It's just random data of a known maximum size appended to the struct,
I'm sure you can find a clean way to handle it. If you mangle the
first variable name in your union, you'll end up with something that
should be usable instead of udata.
If there will be usual pointer, size of the whole structure will be
different in kernel and userspace.
quoted
And I'm not that sure aboit stuff like uptr_t or how they call pointers
in userspace and kernelspace.
Well, I can't find any use of pointers in your struct ukevent, nor in
any of the kqueue events in my man page. So if this is a deficit it
applies to both, I guess?
No, it will change sizes of the structure in kernelspace and userspace,
so they just can not communicate.
quoted
ukevent is aligned to 8 bytes already (it's size selected to be 40 bytes),
so it should not be a problem.
quoted
Eric
Even if it is so, wouldn't it be better to be explicit about it?
Ok, I will add a comment about it.
Rakshasa
-- 
	Evgeniy Polyakov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help