It used to be the case (pre-UVM) that if you called uiomove() to copy from kernel to kernel space it used memcpy(). This meant that you could call it from an interrupt context and just set the uio_procp field to 0. I was a bit lazy so I used it that way, but I'm rewriting that code now. -- Lennart