From owner-freebsd-drivers@freebsd.org Sat Mar 11 14:04:16 2017 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35E64D0673D for ; Sat, 11 Mar 2017 14:04:16 +0000 (UTC) (envelope-from anindya49@hotmail.com) Received: from BAY004-OMC3S18.hotmail.com (bay004-omc3s18.hotmail.com [65.54.190.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "*.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 080D917A1 for ; Sat, 11 Mar 2017 14:04:15 +0000 (UTC) (envelope-from anindya49@hotmail.com) Received: from NAM04-BN3-obe.outbound.protection.outlook.com ([65.54.190.187]) by BAY004-OMC3S18.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Sat, 11 Mar 2017 06:03:10 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=9QXf3a7SlEImDbQgBcNLd/GQ9wgP0VH+Jmkyy9qjcyE=; b=JQ01wRpsipaHvHZ1fWvy4qw1D6sZO/i7oM51SEnZlFrEq9fOcpQIx3cELED9TUOPuLm64opf+TFUJzqYkxaPu1mZTzp90G7oLfZHwkzqDwMksMx77XVF1D5JqjLWpObTl4i9g5cMu2CgVRep+dLjLnPvfxYQCsFvNgtvf26b6RFejypMUgS/nHIyZBCMyzX5XVk+p/WDDWqe/oXpo6JPJVcOiDZRN5f6oQCvv94KFELbjyw3/G0RNQufc3UVN8dt0oaO+HP00deG5J4e6OAlmfooEZrLeBpjiI3sGm20UfdWDV3LoEUvOU+F9A/orKs3w0NrKMKWptxS9OPNF+6Ewg== Received: from CO1NAM04FT041.eop-NAM04.prod.protection.outlook.com (10.152.90.58) by CO1NAM04HT078.eop-NAM04.prod.protection.outlook.com (10.152.91.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.7; Sat, 11 Mar 2017 14:03:06 +0000 Received: from MWHPR2201MB1389.namprd22.prod.outlook.com (10.152.90.54) by CO1NAM04FT041.mail.protection.outlook.com (10.152.91.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.10 via Frontend Transport; Sat, 11 Mar 2017 14:03:06 +0000 Received: from MWHPR2201MB1389.namprd22.prod.outlook.com ([10.172.63.7]) by MWHPR2201MB1389.namprd22.prod.outlook.com ([10.172.63.7]) with mapi id 15.01.0947.020; Sat, 11 Mar 2017 14:03:06 +0000 From: Anindya Mukherjee To: "freebsd-drivers@freebsd.org" Subject: RE: uiomove question Thread-Topic: uiomove question Thread-Index: AQHSmRaz97BbjjTePUWUIWXrakMIPKGPrdau Date: Sat, 11 Mar 2017 14:03:06 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-CA, en-US Content-Language: en-CA X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=hotmail.com; x-incomingtopheadermarker: OriginalChecksum:B4FDF5A14BABA7386E0C5AD50D3501E1CEAD92082F0D434371DC0700EEEF135A; UpperCasedChecksum:E538CA4D011F18F41087337C78940575B726D376FA2A8FF3F63CBFE76F7D4299; SizeAsReceived:7798; Count:39 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [a0HjNfSOc3P/gbfpcWx6FKLAsfxnPYhs] x-incomingheadercount: 39 x-eopattributedmessage: 0 x-microsoft-exchange-diagnostics: 1; CO1NAM04HT078; 5:LZltYrBI6mIMhF8jU1u361u7ze12N0S5L5IOo9DyEFZJ+OCqvSxQkgfc1OYTN6P3igjKm367pE3a+SvPShXs1C2bA6unY1el0A+gELMXYGTB+gQzYwAlSXIfIxioxgN65Rf5bXhCoyzKBkosY+qwjmEO2HygwR+yT95Y+WYZC2A=; 24:jsNRfRpZC6l7MRMrUAHpawpcI03qvDg9WKEcS2+0pjSzs6y/s4NG+M2Yc4cYV5Z3zk4fXu5Gs0HMAHA8DFMvwcV05Qip2dg5LVQbSSBlrb0=; 7:5otrhmCvQbAm5LExHNg9/jX2TXjS0fOVSd+AojqKWqwQZkUBkdB5NUEmSJWnwPRaBSxeNejyvA9iILrEsWu5PjYzBLESdI21dhB4sqdTVkpmYJLx5SQyqPPVgp4QivqW2Ssq9SEs23V8msAichlI/TQ9bjVTsoYDiOsjgeQsUQvxvMJ94NZWx7brftHAtHWfCHOsi31MwEmdXcdCXUVf724GQRsndedGUd2ZcYzhHuFJU//heuNjmK7ezgcT2FYcCBOfKxhCmZQqQ85OMh5FSytKjkxG9mZtj+XCozpDqMDrlwuGzKvXz6ta3tNXjSt+ x-forefront-antispam-report: EFV:NLI; SFV:NSPM; SFS:(10019020)(98900016); DIR:OUT; SFP:1102; SCL:1; SRVR:CO1NAM04HT078; H:MWHPR2201MB1389.namprd22.prod.outlook.com; FPR:; SPF:None; LANG:en; x-ms-office365-filtering-correlation-id: 5cb0345a-4d58-40cc-fc18-08d4688757b6 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(1603101448)(1601125254)(1701031045); SRVR:CO1NAM04HT078; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(432015087)(444000031); SRVR:CO1NAM04HT078; BCL:0; PCL:0; RULEID:; SRVR:CO1NAM04HT078; x-forefront-prvs: 0243E5FD68 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2017 14:03:06.6472 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1NAM04HT078 X-OriginalArrivalTime: 11 Mar 2017 14:03:10.0380 (UTC) FILETIME=[3768DEC0:01D29A70] X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Mar 2017 14:04:16 -0000 An example of the usage I am talking about: xxx_write(...) { ... amount =3D MIN(uio->uio_resid, // 0. This is the no of bytes in the uio le= ft 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 =3D=3D 0) return (error); error =3D uiomove(sc->sc_buffer, amount, uio); // 2. sc_buffer is not offs= et ... } xxx_read(...) { ... amount =3D 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 =3D uiomove(sc->sc_buffer + uio->uio_offset, amount, uio); // 4. Here= buffer is offset ... } Anindya=