From owner-svn-src-user@FreeBSD.ORG Mon Nov 19 18:44:01 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CCF8EC2E; Mon, 19 Nov 2012 18:44:01 +0000 (UTC) (envelope-from mdf356@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 76B478FC0C; Mon, 19 Nov 2012 18:44:01 +0000 (UTC) Received: by mail-pb0-f54.google.com with SMTP id wz12so3833294pbc.13 for ; Mon, 19 Nov 2012 10:44:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=xf28z9IqA8THanzLnQHhaWEeyMu7wCMHacGAh1vIES4=; b=UUQrDRvKbdXTq+k9+NCr32bS6VWwzYuCzo3M0bz/Nop/VHoO4nENEgSHBjjIO5bb8m +uEed1QvfXn+Irt3TynpzmISrMc2dmWuKFkRUDlWiNa04NYNjkv4tqGJ3ZP0p12J21Se mRUOAjNl0emAxdzP363lqMoM2YYC6mjWhAytmE3+Y85ClfqFCrBKzYU7lIQ4H3UAJkCi AX0KPvUCbPQ6hrKqB4m2O/uEUQ2AbslRK68zx17FDAb3UY1IwdRmPFVYE23r5lBLCpYK W7U7k+OupjgNjiRhFTLfEqpR4sSOkCEHzugt2Siwv2Y6nc5Rk3Vtym/tH07zA7KDpXEH qLsg== MIME-Version: 1.0 Received: by 10.68.189.138 with SMTP id gi10mr40866651pbc.165.1353350640973; Mon, 19 Nov 2012 10:44:00 -0800 (PST) Sender: mdf356@gmail.com Received: by 10.68.132.136 with HTTP; Mon, 19 Nov 2012 10:44:00 -0800 (PST) In-Reply-To: <50AA7773.1050401@FreeBSD.org> References: <201211181217.qAICH7aH021497@svn.freebsd.org> <20121119114510.GQ38060@FreeBSD.org> <50AA3529.2030300@freebsd.org> <50AA76CD.3070904@freebsd.org> <50AA7773.1050401@FreeBSD.org> Date: Mon, 19 Nov 2012 10:44:00 -0800 X-Google-Sender-Auth: vBuvL96xxyXO-6_DA4lgreQ9Tzc Message-ID: Subject: Re: svn commit: r243215 - user/andre/tcp_workqueue/sys/sys From: mdf@FreeBSD.org To: Navdeep Parhar Content-Type: text/plain; charset=ISO-8859-1 Cc: Gleb Smirnoff , Andre Oppermann , src-committers@freebsd.org, svn-src-user@freebsd.org X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Nov 2012 18:44:01 -0000 On Mon, Nov 19, 2012 at 10:16 AM, Navdeep Parhar wrote: > On 11/19/12 10:13, Andre Oppermann wrote: >> On 19.11.2012 18:01, mdf@FreeBSD.org wrote: >>> On Mon, Nov 19, 2012 at 5:33 AM, Andre Oppermann >>> wrote: >>>> On 19.11.2012 12:45, Gleb Smirnoff wrote: >>>>> >>>>> On Sun, Nov 18, 2012 at 12:17:07PM +0000, Andre Oppermann wrote: >>>>> A> Author: andre >>>>> A> Date: Sun Nov 18 12:17:07 2012 >>>>> A> New Revision: 243215 >>>>> A> URL: http://svnweb.freebsd.org/changeset/base/243215 >>>>> A> >>>>> A> Log: >>>>> A> Add mtodo(m, o, t) macro taking an additional offset into >>>>> A> the mbuf data section before the casting to type 't'. >>>>> >>>>> IMHO, argument order of (m, t, o) is more intuitive, since >>>>> matches order of mtod(). >>>> >>>> >>>> Yes, but that looks rather horrible and counter-intuitive: >>>> >>>> th = mtodo(m, struct tcphdr *, 20); >>>> >>>> vs. >>>> >>>> th = mtodo(m, 20, struct tcphdr *); >>>> >>>> Reads m->m_data at offset 20 is struct tcphdr. >>>> >>>> Naming it mtood() wasn't convincing either. ;-) >>> >>> Why a cast at all? Perpetuating the mistake of mtod()'s casting isn't >>> necessary. mtod() can't be fixed for source reasons, but the new one >>> doesn't need to cast. Since C automatically casts from void * to any >>> other pointer, the code gets shorter (usually) too: >>> >>> th = mtodo(m, 20); >> >> m->m_data is caddr_t which is "char *" > > No matter what it is you can always cast it to void * before returning, > instead of having the caller supply the type. Right, this is what I meant. Instead of a parameter to cast to, just return void *. Let the caller cast, or not, as needed. It's a simpler macro that way. Cheers, matthew