lkml.org 
[lkml]   [2003]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: transmeta cpu code question
    Date
    On Thu, 20 Nov 2003 12:02 pm, Nico Schottelius wrote:
    > Hello!
    >
    > What does this do:
    >
    > printk(KERN_INFO "CPU: Processor revision %u.%u.%u.%u,
    > %u MHz\n",
    > (cpu_rev >> 24) & 0xff,
    > (cpu_rev >> 16) & 0xff,
    > (cpu_rev >> 8) & 0xff,
    > cpu_rev & 0xff,
    > cpu_freq);
    >
    > (from arch/i386/kernel/cpu/transmeta.c)
    >
    > Does not & 0xff make no sense? 0 & 1 makes 0, 1 & 1 makes 1,
    > no changes.

    I may be wrong, but afaik the 0xff's are there to truncate the other values to
    8-bit. 0xff == 0b11111111, which is 8-bit.

    From the bitshifting above, cpu_rev seems to be a 32-bit value, so the four
    sections of cpu_rev (>>24, >>16, >>8 and >>0) are being ANDed with 0xff to
    show only the 8 low bits (post-shift).

    >
    > And I don't understand why we do this for 8bit and shifting the
    > cpu_rev...
    >
    > Can someone enlighten me (with CC' as I am not subscribed) ?
    >
    > Nico
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/

    --
    Ben

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:58    [W:0.022 / U:0.928 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site