From: Renate Meijer <kleuske@xs4all.nl>
To: Kyle Moffett <mrmacman_g4@mac.com>
Cc: Grzegorz Kulewski <kangur@polcom.net>,
Adrian Bunk <bunk@stusta.de>,
Al Viro <viro@parcelfarce.linux.theplanet.co.uk>,
linux-kernel@vger.kernel.org, Andreas Schwab <schwab@suse.de>,
Kenneth Johansson <ken@kenjo.org>,
Stephen Rothwell <sfr@canb.auug.org.au>,
linux-os@analogic.com, Dag Arne Osvik <da@osvik.no>
Subject: Re: Use of C99 int types
Date: Tue, 5 Apr 2005 11:23:07 +0200 [thread overview]
Message-ID: <d5803044b1c7dcc631eda71863d44fa2@xs4all.nl> (raw)
In-Reply-To: <62f8215dd556d5a50b307f5b6d4f578b@mac.com>
On Apr 4, 2005, at 11:49 PM, Kyle Moffett wrote:
> On Apr 04, 2005, at 17:25, Richard B. Johnson wrote:
>> I don't find stdint.h in the kernel source (up to 2.6.11). Is this
>> going to be a new addition?
>
> Uhh, no. stdint.h is part of glibc, not the kernel.
>
>> It would be very helpful to start using the uint(8,16,32,64)_t types
>> because they are self-evident, a lot more than size_t or, my favorite
>> wchar_t.
>
> You miss the point of size_t and ssize_t/ptrdiff_t. They are types
> guaranteed to be at least as big as the pointer size.
IIRC, It is guaranteed that size_t can correctly represent the largest
object which
can be malloced. This usually coincides with the width of a pointer,
but not
neccesarily.
> uint8/16/32/64,
> on the other hand, are specific bit-sizes, which may not be as fast or
> correct as a simple size_t.
Using specific widths may yield benefits on one platform, whilst
proving a real
bottleneck when porting something to another. A potential of problems
easily
avoided by using plain-vanilla integers.
> Linus has pointed out that while it
> doesn't matter which of __u32, u32, uint32_t, etc you use for kernel
> private interfaces, you *cannot* use anything other than __u32 in the
> parts of headers that userspace will see, because __u32 is defined
> only by the kernel and so there is no risk for conflicts, as opposed
> to uint32_t, which is also defined by libc, resulting in collisions
> in naming.
Strictly speaking, a definition starting with a double underscore is
reserved for use
by the compiler and associated libs, this such a declaration would
invade implementation
namespace. The compilers implementation, that is.
In this case, the boundary is a bit vague, i see that, since a lot of
header definitions also reside
in the /usr/include hierarchy.
I think it would be usefull to at least *agree* on a standard type for
8/16/32/64-bit integer types. What
I see now as a result of grepping for 'uint32' is a lot more confusing
than stdint.h
There is u32, __u32, uint32, uint32_t, __uint32_t...
Especially the types with leading underscores look cool, but in reality
may cause a conflict with compiler
internals and should only be used when defining compiler libraries. The
'__' have explicitly been put in by
ISO in order to avoid conflicts between user-code and the standard
libraries, so if non-compiler-library code also starts using '__', just
coz it looks cool, that cunning plan is undone.
Furthermore, I think it's wise to convince the community that if not
needed, integers should not be specified
by any specific width.
Regards,
Renate Meijer.
next prev parent reply other threads:[~2005-04-05 9:20 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-03 11:55 Dag Arne Osvik
2005-04-03 12:05 ` Stephen Rothwell
2005-04-03 12:30 ` Dag Arne Osvik
2005-04-03 13:27 ` Andreas Schwab
2005-04-03 22:48 ` Dag Arne Osvik
2005-04-03 23:05 ` Al Viro
2005-04-03 23:17 ` Grzegorz Kulewski
2005-04-03 23:20 ` Dag Arne Osvik
2005-04-04 0:05 ` Adrian Bunk
2005-04-03 18:13 ` Al Viro
2005-04-03 23:03 ` Dag Arne Osvik
2005-04-04 3:08 ` Herbert Xu
2005-04-04 8:42 ` Dag Arne Osvik
2005-04-03 19:23 ` Renate Meijer
2005-04-03 20:25 ` Kenneth Johansson
2005-04-03 22:08 ` Kyle Moffett
2005-04-04 10:05 ` Renate Meijer
2005-04-04 10:50 ` Dag Arne Osvik
2005-04-04 20:30 ` Renate Meijer
2005-04-04 20:57 ` Al Viro
2005-04-04 21:25 ` Richard B. Johnson
2005-04-04 21:49 ` Kyle Moffett
2005-04-05 9:23 ` Renate Meijer [this message]
2005-04-05 11:27 ` Kyle Moffett
[not found] ` <09142f748cc6ad2bf4fffab7a5519226@xs4all.nl>
2005-04-05 22:11 ` Kyle Moffett
[not found] ` <eb65bccddde63541ae4b7b2d6c4c32d3@xs4all.nl>
2005-04-06 21:11 ` Kyle Moffett
2005-04-07 11:28 ` Renate Meijer
2005-04-05 12:18 ` Richard B. Johnson
2005-04-05 21:47 ` Kyle Moffett
2005-04-05 8:49 ` Renate Meijer
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=d5803044b1c7dcc631eda71863d44fa2@xs4all.nl \
--to=kleuske@xs4all.nl \
--cc=bunk@stusta.de \
--cc=da@osvik.no \
--cc=kangur@polcom.net \
--cc=ken@kenjo.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-os@analogic.com \
--cc=mrmacman_g4@mac.com \
--cc=schwab@suse.de \
--cc=sfr@canb.auug.org.au \
--cc=viro@parcelfarce.linux.theplanet.co.uk \
/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
Powered by JetHome