[...]
>What I describes involves using ES to store the kernel's DS only for the
>duration of a call into driver space. The driver need never know that ES
>is being used anywhere, unless it needs to access kernel memory, in which
>case it will have to use one of our handy macros. To be honest, there's
>not much type safety within the kernel anyway. :P
Well... no.
[...]
>To be honest, what you're describing sounds like what I'm describing. :)
>I think the difference is that what you describe involves one more copy of
>the data. That is:
>
>copy from device to driver space
>copy from driver space to kernel space
>copy from kernel space to user space
I'm only suggesting using the message-passing for function arguments; when the
driver wanted to write real data into, say, a file system buffer, it would
query the kernel and get the segment descriptor for the buffer. It could then
write there directly.
Your suggestion (which now I come to think more about it, *does* seem rather
familiar) would involve the same copying; you'd have to copy the parameters
from the kernel's stack onto the driver's stack, unless you wanted to restrict
it to registers only. Mine's just formalising it a bit.
--
+- David Given ---------------McQ-+
| Work: [EMAIL PROTECTED] | All generalizations are incorrect,
| Play: [EMAIL PROTECTED] | including this one.
+- http://wired.st-and.ac.uk/~dg -+