Help Reqd: "uiomove" transferring zero bytes from user-kernel space

rashmi ns nsrashmi at gmail.com
Sun Dec 11 20:03:43 PST 2005


Hello Team,
                  when i use  "uiomove"  in the character device
interface the no of bytes transfrerred between kernel and userspace is
zero .but the actual data transferred when trraced through
"uio->resid" is correct .can  any one explain why this is happening ?

/*Character Device Interfaces*/
static struct cdevsw  hdlc_cdevsw = {

        .d_maj      = CDEV_MAJOR,
        .d_open     = hdlc_open,
        .d_read     = hdlc_read,
        .d_write     = hdlc_write,
        .d_ioctl    = hdlc_ioctl,
        .d_close    = hdlc_close,
        .d_version  = D_VERSION,
};
static int hdlc_write(dev_t dev, struct uio *uio, int ioflag)
{
        int     towrite,written;  /*char device inf*/
     written=uiomove((void *)write_tx_buffer,towrite,uio);
     uprintf("uio->resid=%d",uio->uio_resid);
    uprintf("No of bytes written  =%d",written);




}

Thanks and Regards,
Rashmi.N.S


More information about the freebsd-drivers mailing list