From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: Endianness independance
Date: Tue, 04 Mar 2003 02:33:48 GMT
Date: 2003-03-04T02:33:48+00:00 [thread overview]
Message-ID: <3E641073.8030600@acm.org> (raw)
In-Reply-To: uu1ekigg5.fsf@nasa.gov
Stephen Leake wrote:
> "Marin David Condic" <mcondic.auntie.spam@acm.org> writes:
>
>
>>Well, but if hardware is not standardized, then why would you expect
>>languages to be standardized? (With respect to data representations.)
>
>
> The point is that Ada provides a _standard_, _single_ representation
> clause that works for both kinds of hardware:
>
> -- Abstract :
> --
> -- Define constants to reflect hardware bit and word endianness in
> -- record representation clauses. Obviously, this file is highly
> -- system-dependent.
> --
> with System;
> package SAL.Endianness is
> pragma Pure;
>
> -- This is for gnat on a Mongoose processor
> System_Name : constant System.Name := System.SYSTEM_NAME_GNAT;
>
> type Byte_Order_Type is (Big_Endian, Little_Endian);
> Byte_Order : constant Byte_Order_Type := Big_Endian;
>
> -- The Mongoose documentation numbers bits with LSB = 0. However,
> -- the byte order is Big_Endian, so the Ada compiler assumes bits
> -- are numbered with MSB = 0, since that allows representation
> -- clauses with fields that cross natural boundaries.
>
> Bit_Order : constant := -1; -- 1 or -1
> High_Bit_First : constant := 1; -- 0 or 1
> Low_Bit_First : constant := 0; -- 1 or 0
>
> -- Use one of these, corresponding to the natural size of the
> -- record you are laying out.
> LSBit_8 : constant := 7; -- 0 or 7
> LSBit_16 : constant := 15; -- 0 or 15
> LSBit_32 : constant := 31; -- 0 or 31
> LSBit_56 : constant := 55; -- 0 or 55
>
> end SAL.Endianness;
You can make this system independent by using System.Default_Bit_Order,
which, thanks to an AI (I don't remember which, but you can look it up)
is static.
--
Jeff Carter
"If I could find a sheriff who so offends the citizens of Rock
Ridge that his very appearance would drive them out of town ...
but where would I find such a man? Why am I asking you?"
Blazing Saddles
next prev parent reply other threads:[~2003-03-04 2:33 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-28 15:11 Endianness independance Lionel.DRAGHI
2003-02-28 16:10 ` Stephen Leake
2003-02-28 18:26 ` Marin David Condic
2003-03-01 10:48 ` Amir Yantimirov
2003-03-01 12:00 ` Simon Wright
2003-03-01 12:53 ` Jeffrey Creem
2003-03-01 17:26 ` Simon Wright
2003-03-01 12:47 ` Marin David Condic
2003-03-02 9:49 ` Amir Yantimirov
2003-03-03 13:29 ` Marin David Condic
2003-03-03 16:05 ` Stephen Leake
2003-03-03 17:50 ` Marin David Condic
2003-03-04 2:33 ` Jeffrey Carter [this message]
2003-03-04 17:50 ` Stephen Leake
2003-03-05 2:15 ` Jeffrey Carter
2003-03-05 17:37 ` Stephen Leake
-- strict thread matches above, loose matches on Subject: below --
2003-02-28 17:21 Lionel.DRAGHI
2003-02-28 20:37 ` Randy Brukardt
2003-03-03 13:33 Lionel.DRAGHI
2003-03-03 16:11 ` Stephen Leake
2003-03-03 17:52 Lionel.DRAGHI
2003-03-03 20:29 ` Pascal Obry
[not found] <BB06F6B19AC7D51181D10050DA725A10138C71@eoleclb.clb.tcfr.thales>
2003-03-03 18:38 ` David C. Hoos
2003-03-04 11:34 Lionel.DRAGHI
[not found] <BB06F6B19AC7D51181D10050DA725A10138C75@eoleclb.clb.tcfr.thales>
2003-03-04 12:46 ` David C. Hoos, Sr.
2003-03-04 16:38 ` John Harbaugh
2003-03-04 21:25 ` Simon Wright
2003-03-05 17:28 ` Warren W. Gay VE3WWG
2003-03-05 20:15 ` Simon Wright
2003-03-05 21:54 ` Warren W. Gay VE3WWG
2003-03-05 17:49 David C. Hoos
2003-03-05 20:16 ` Simon Wright
2003-03-05 21:58 ` Warren W. Gay VE3WWG
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox