From: wdebruij@dds.nl
To: sting sting <zstingx@hotmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Example Code Was : Re: Re : Re: printk and long long
Date: Wed, 11 Feb 2004 15:57:25 +0100 [thread overview]
Message-ID: <1076511445.402a42d5c6ff9@webmail.dds.nl> (raw)
In-Reply-To: <Sea2-F294mt5UJoched000331f3@hotmail.com>
>
> Well I had tried it but I got
> the follwing compilation errors while trying to add that code:
> invalid operands to binary >>
> invalid operands to binary <<
I just ran the following on my computer :
"
#define LLHIGH(n) (unsigned long) (n >> (8 * sizeof(long)))
#define LLLOW(n) (unsigned long) ((n << (8 * sizeof(long))) >> (8 * sizeof(long)))
/** internal function: called from the template module's init function */
int myfunc(void){
unsigned long long int ullint = ((unsigned long long int) 1 << 32) - 1; //
LONG_MAX returns 7fffffff, this at least is a max_long
unsigned long int ulint = ((unsigned long long int) 1 << 32) - 1;
printk("a long long consists of %d bits on an x86 (athlon-xp), whereas a long
consists of %d bits\n", sizeof(ullint) * 8, sizeof(long) * 8);
printk("my test long long reads %.8lx%.8lx; my test long %.8lx\n",
LLHIGH(ullint), LLLOW(ullint), ulint );
ullint += 1; // will we get overflow or is a long long really > long?
ulint += 1;
printk("my test long long now reads %.8lx%.8lx; my test long %.8lx\n",
LLHIGH(ullint), LLLOW(ullint), ulint );
"
"
a long long consists of 64 bits on an x86 (athlon-xp), whereas a long consists
of 32 bits
my test long reads 00000000ffffffff; my test long ffffffff
my test long reads 0000000100000000; my test long 00000000
"
It took a bit longer to get right than I imagined (doesn't it always ;), but at
least here you've got a working example. Enjoy.
cheers,
Willem
>
> I assume maybe it is a problems with the flags I use:
> I use gcc 3.2.2 and the flags are:
> O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common
> -DMODULE -D__KERNEL__ -DNOKERNEL
to the best of my knowledge it has nothing to do with this.
prev parent reply other threads:[~2004-02-11 14:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-11 14:08 Re : Re: printk and long long sting sting
2004-02-11 14:57 ` wdebruij [this message]
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=1076511445.402a42d5c6ff9@webmail.dds.nl \
--to=wdebruij@dds.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=zstingx@hotmail.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