comp.lang.ada
 help / color / mirror / Atom feed
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




  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