Date: Mon, 08 May 2017 13:35:42 -0700 From: John Baldwin <jhb@freebsd.org> To: freebsd-drivers@freebsd.org Subject: Re: uiomove question Message-ID: <1616964.AnLvBdJceo@ralph.baldwin.cx> In-Reply-To: <MWHPR2201MB13893C02D022695130ECF14EB6230@MWHPR2201MB1389.namprd22.prod.outlook.com> References: <MWHPR2201MB1389E09A18BCBEEB53ADCD96B6210@MWHPR2201MB1389.namprd22.prod.outlook.com> <MWHPR2201MB13893C02D022695130ECF14EB6230@MWHPR2201MB1389.namprd22.prod.outlook.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday, March 11, 2017 02:03:06 PM Anindya Mukherjee wrote: > An example of the usage I am talking about: > > xxx_write(...) > { > ... > amount = MIN(uio->uio_resid, // 0. This is the no of bytes in the uio left to write > (BUFFER_SIZE - 1 - uio->uio_offset > 0) ? > BUFFER_SIZE - 1 - uio->uio_offset : 0); // 1. amount to write is computed > //assuming write will happen at uio_offset in sc_buffer > if (amount == 0) > return (error); > error = uiomove(sc->sc_buffer, amount, uio); // 2. sc_buffer is not offset > ... > } > > xxx_read(...) > { > ... > amount = MIN(uio->uio_resid, > (sc->sc_length - uio->uio_offset > 0) ? > sc->sc_length - uio->uio_offset : 0); // 3. Same as comment 1 above > error = uiomove(sc->sc_buffer + uio->uio_offset, amount, uio); // 4. Here buffer is offset > ... > } > > Anindya Yes, I think your point is correct. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1616964.AnLvBdJceo>