linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Richard Knutsson <ricknu-0@student.ltu.se>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Milind Choudhary <milindchoudhary@gmail.com>,
	kernel-janitors@lists.osdl.org, linux-kernel@vger.kernel.org,
	linux-input@atrey.karlin.mff.cuni.cz,
	linux-joystick@atrey.karlin.mff.cuni.cz
Subject: Re: [KJ][RFC][PATCH] BIT macro cleanup
Date: Fri, 23 Feb 2007 17:08:05 +0100	[thread overview]
Message-ID: <45DF1165.2080003@student.ltu.se> (raw)
In-Reply-To: <d120d5000702230657s1860efb3o6986277901f13d03@mail.gmail.com>

Dmitry Torokhov wrote:
> On 2/23/07, Richard Knutsson <ricknu-0@student.ltu.se> wrote:
>> Milind Choudhary wrote:
>> > On 2/23/07, Richard Knutsson <ricknu-0@student.ltu.se> wrote:
>> >> > +#define BITWRAP(nr)    (1UL << ((nr) % BITS_PER_LONG))
>> >> >
>> >> > & make the whole input subsystem use it
>> >> > The change is huge, more than 125 files using input.h
>> >> > & almost all use the BIT macro.
>> >> It is as a big of change, but have you dismissed the "BIT(nr %
>> >> BITS_PER_LONG)" approach?
>> >
>> > no..
>> > but just looking at the number of places it is being used,
>> > it seems that adding a new  macro would be good
>> > which makes it look short n sweet
>> You have a point there but I still don't think it should be in bitops.h.
>> Why should we favor long-wrap before byte-wrap, so what do you think
>> about doing:
>>
>> #define BITWRAP(x)      BIT((x) % BITS_PER_LONG)
>>
>> in input.h? Otherwise I think it should be call LBITWRAP (or something)
>> to both show what kind it is and enable us to add others later.
>
> Why would you not want to have what you call bitwrap as a standard
> behavior? Most placed to not use modulus because they know the kind of
> data they are working with but should still be fine if generic
> implementation did that.
>
Both because I find the name not as expressive as simple "BIT(x % 
something)", but mainly since it only enables wrapping of the long-type. 
But that is just my opinion.
Just to test:

> grep -Enr "BIT\(.*\%" *
include/asm-arm/arch-h720x/irqs.h:114:#define IRQ_TO_BIT(irq) (1 << ((irq - NR_GLBL_IRQS) % 32))
include/asm-arm/arch-omap/irqs.h:274:#define OMAP_IRQ_BIT(irq)  (1 << ((irq) % 32))
include/asm-i386/mach-visws/piix4.h:17:#define  GPIBIT(x)               (1 << ((x)%8))
include/linux/netfilter/xt_conntrack.h:11:#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
include/linux/netfilter/xt_state.h:4:#define XT_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
...

So it seems there are some instances who wrap but they don't seem to 
like BITSWAP (well, maybe those "% 32" on an appropriate arch).

So I think that if an subsystem uses something like this much (like 
input.h), then it is up to that subsystem to provide it. When more then 
one sub-system have a need for it, then it should be a common define (as 
BIT is now). But as I said, that is just my opinion.

Richard Knutsson

  reply	other threads:[~2007-02-23 16:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3b44d3fb0702222056k1d2a9b57q69a3555a09a9058e@mail.gmail.com>
2007-02-23  8:14 ` [KJ][RFC][PATCH] BIT macro cleanup Milind Choudhary
2007-02-23  8:56   ` Richard Knutsson
2007-02-23 10:15     ` Milind Choudhary
2007-02-23 14:10       ` Richard Knutsson
2007-02-23 14:57         ` Dmitry Torokhov
2007-02-23 16:08           ` Richard Knutsson [this message]
2007-02-23 17:05             ` Dmitry Torokhov
2007-02-23 18:15               ` Richard Knutsson
2007-02-23 18:37                 ` Dmitry Torokhov
2007-02-23 19:11                   ` Richard Knutsson
2007-02-23 21:58                     ` Dmitry Torokhov
2007-02-23 22:43                       ` Richard Knutsson
2007-02-24 11:11                         ` Vojtech Pavlik
2007-02-24 12:59                           ` Richard Knutsson
2007-02-25  3:39                             ` Dmitry Torokhov
2007-02-24 19:11                           ` Milind Arun Choudhary
2007-02-25 15:45                             ` Richard Knutsson
2007-02-25  3:37                           ` Dmitry Torokhov
2007-02-24 10:46   ` Vojtech Pavlik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45DF1165.2080003@student.ltu.se \
    --to=ricknu-0@student.ltu.se \
    --cc=dmitry.torokhov@gmail.com \
    --cc=kernel-janitors@lists.osdl.org \
    --cc=linux-input@atrey.karlin.mff.cuni.cz \
    --cc=linux-joystick@atrey.karlin.mff.cuni.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=milindchoudhary@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).