From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aneesh V Date: Thu, 13 Jan 2011 20:00:20 +0530 Subject: [U-Boot] [PATCH 2/8] armv7: cache maintenance operations for armv7 In-Reply-To: <4D2EFAD2.3070705@free.fr> References: <1293018898-13253-1-git-send-email-aneesh@ti.com> <1293018898-13253-3-git-send-email-aneesh@ti.com> <4D2805FC.7070200@free.fr> <4D2863D0.2050005@ti.com> <4D286F58.9010605@free.fr> <4D2D6F71.1020906@ti.com> <4D2DFFB2.5010407@free.fr> <4D2EEA83.2030200@ti.com> <4D2EFAD2.3070705@free.fr> Message-ID: <4D2F0C7C.6030907@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thursday 13 January 2011 06:44 PM, Albert ARIBAUD wrote: > Le 13/01/2011 13:05, Aneesh V a ?crit : > >>>> What I need is something like below: >>>> >>>> #define get_bit_field(nr, start, mask)\ >>>> (((nr) & (mask)) >> (start)) >>>> >>>> #define set_bit_field(nr, start, mask, val)\ >>>> (nr) = ((nr) & ~(mask)) | (((val) << (start)) & (mask)) >>>> >>>> Can these go in a generic header? If so, can I add them to >>>> "include/linux/bitops.h" >>> >>> After some more thought, I am wondering if a *generic* field setting and >>> getting macro is really useful. So far everyone is fine with at most >>> defining field-specific macros. >> >> Is it going to be easy if you have many fields to deal with? > > I don't see how the generic macros ease anything. Instead of defining say > > #define get_field_F(x) ((x >> F_start) & F_mask) > #define set_field_F(x,v) { x = (x ~ F_mask ) | (v << F_start) } > > You'd have > > #define get_field_F(x) get_bit_field(x, F_start, F_mask) > #define set_field_F(x,v) set_bit_field(x, F_start, F_mask, v); > > Which does not seem to bring any simplicity to me. I wouldn't define get_field_F. Instead I would just use set_bit_field(x, F_start, F_mask, v) directly in the code and I have F_start and F_mask defined in the header files (automatically generated) Even if it was manual isn't it easier to define just F_start and F_mask per field than defining a get_field_F per field? Perhaps my requirement is different. If this scheme is not used by many, I shall put these macros in OMAP specific headers. best regards, Aneesh