mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 01:59:18 +02:00
* made Byte/Word/Long/Int64Rec endian safe
+ Int128/OWordRec git-svn-id: trunk@16279 -
This commit is contained in:
parent
d786f8a1b8
commit
b4c912bf92
@ -41,21 +41,57 @@ type
|
|||||||
|
|
||||||
LongRec = packed record
|
LongRec = packed record
|
||||||
case Integer of
|
case Integer of
|
||||||
|
{$ifdef FPC_LITTLE_ENDIAN}
|
||||||
0 : (Lo,Hi : Word);
|
0 : (Lo,Hi : Word);
|
||||||
|
{$else FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Hi,Lo : Word);
|
||||||
|
{$endif FPC_LITTLE_ENDIAN}
|
||||||
1 : (Bytes : Array[0..3] of Byte);
|
1 : (Bytes : Array[0..3] of Byte);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
WordRec = packed record
|
WordRec = packed record
|
||||||
|
{$ifdef FPC_LITTLE_ENDIAN}
|
||||||
Lo,Hi : Byte;
|
Lo,Hi : Byte;
|
||||||
|
{$else FPC_LITTLE_ENDIAN}
|
||||||
|
Hi,Lo : Byte;
|
||||||
|
{$endif FPC_LITTLE_ENDIAN}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Int64Rec = packed record
|
Int64Rec = packed record
|
||||||
case integer of
|
case integer of
|
||||||
|
{$ifdef FPC_LITTLE_ENDIAN}
|
||||||
0 : (Lo,Hi : Cardinal);
|
0 : (Lo,Hi : Cardinal);
|
||||||
|
{$else FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Hi,Lo : Cardinal);
|
||||||
|
{$endif FPC_LITTLE_ENDIAN}
|
||||||
1 : (Words : Array[0..3] of Word);
|
1 : (Words : Array[0..3] of Word);
|
||||||
2 : (Bytes : Array[0..7] of Byte);
|
2 : (Bytes : Array[0..7] of Byte);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Int128Rec = packed record
|
||||||
|
case integer of
|
||||||
|
{$ifdef FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Lo,Hi : QWord);
|
||||||
|
{$else FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Hi,Lo : QWord);
|
||||||
|
{$endif FPC_LITTLE_ENDIAN}
|
||||||
|
1 : (DWords : Array[0..3] of DWord);
|
||||||
|
2 : (Words : Array[0..7] of Word);
|
||||||
|
3 : (Bytes : Array[0..15] of Byte);
|
||||||
|
end;
|
||||||
|
|
||||||
|
OWordRec = packed record
|
||||||
|
case integer of
|
||||||
|
{$ifdef FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Lo,Hi : QWord);
|
||||||
|
{$else FPC_LITTLE_ENDIAN}
|
||||||
|
0 : (Hi,Lo : QWord);
|
||||||
|
{$endif FPC_LITTLE_ENDIAN}
|
||||||
|
1 : (DWords : Array[0..3] of DWord);
|
||||||
|
2 : (Words : Array[0..7] of Word);
|
||||||
|
3 : (Bytes : Array[0..15] of Byte);
|
||||||
|
end;
|
||||||
|
|
||||||
PByteArray = ^TByteArray;
|
PByteArray = ^TByteArray;
|
||||||
TByteArray = Array[0..32767] of Byte;
|
TByteArray = Array[0..32767] of Byte;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user