| Deutsch English Français Italiano |
|
<86wmjcd7yf.fsf@linuxsc.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!3.eu.feeder.erje.net!feeder.erje.net!news.mb-net.net!open-news-network.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.arch
Subject: Re: Computer architects leaving Intel...
Date: Sun, 15 Sep 2024 12:37:28 -0700
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <86wmjcd7yf.fsf@linuxsc.com>
References: <vaqgtl$3526$1@dont-email.me> <p1cvdjpqjg65e6e3rtt4ua6hgm79cdfm2n@4ax.com> <2024Sep10.101932@mips.complang.tuwien.ac.at> <ygn8qvztf16.fsf@y.z> <2024Sep11.123824@mips.complang.tuwien.ac.at> <vbsoro$3ol1a$1@dont-email.me> <867cbhgozo.fsf@linuxsc.com> <20240912142948.00002757@yahoo.com> <vbuu5n$9tue$1@dont-email.me> <20240915001153.000029bf@yahoo.com> <vc6jbk$5v9f$1@paganini.bofh.team> <20240915154038.0000016e@yahoo.com> <vc70sl$285g2$4@dont-email.me> <vc73bl$28v0v$1@dont-email.me> <OvEFO.70694$EEm7.38286@fx16.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Sun, 15 Sep 2024 21:37:35 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="393c6de94aad5c3a9db23639212fcd5c";
logging-data="2464417"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/BmOGp9nOzUeE9cVTAao8Bm+ACphfRGiM="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:ow5rwH28gC/6I4xhAc3AeWwP/js=
sha1:1vgO+nzjCIs+JhBUrrNap8Bilqc=
Bytes: 3096
scott@slp53.sl.home (Scott Lurndal) writes:
> Robert Finch <robfi680@gmail.com> writes:
>
>> On 2024-09-15 12:09 p.m., David Brown wrote:
>>
>>>> In addition, some padding-related things can be defined by Standard
>>>> itself. Not in this particular case, but, for example, it could be
>>>> defined that when field of one integer type is immediately followed by
>>>> another field of integer type with the same or narrower width then
>>>> there should be no padding in-between.
>>>>
>>>
>> What about bit-fields in a struct? I believe they are usually packed. In
>> case its for something like an I/O device.
>
> That's a bit more complicated as it depends on the target byte-order.
>
> e.g.
>
> struct GIC_ECC_INT_STATUSR_s {
> #if __BYTE_ORDER == __BIG_ENDIAN
> uint64_t reserved_41_63 : 23;
> uint64_t dbe : 9; /**< R/W1C/H - RAM ECC DBE detected. */
> uint64_t reserved_9_31 : 23;
> uint64_t sbe : 9; /**< R/W1C/H - RAM ECC SBE detected. */
> #else
> uint64_t sbe : 9;
> uint64_t reserved_9_31 : 23;
> uint64_t dbe : 9;
> uint64_t reserved_41_63 : 23;
> #endif
> } s;
Probably many people know that this code depends on an
implementation-defined extension (allowing uint64_t as
the type of a bitfield) and is not guaranteed to be
portable. Using 'unsigned' instead would be portable
(assuming typical 32-bit ints, etc).