48 lines
1.0 KiB
Ada
48 lines
1.0 KiB
Ada
package Atomic1_Pkg is
|
|
|
|
type Four_Bits is mod 2 ** 4;
|
|
|
|
type R16 is record
|
|
F1 : Four_Bits;
|
|
F2 : Four_Bits;
|
|
F3 : Four_Bits;
|
|
F4 : Four_Bits;
|
|
end record;
|
|
for R16 use record
|
|
F1 at 0 range 0 .. 3;
|
|
F2 at 0 range 4 .. 7;
|
|
F3 at 0 range 8 .. 11;
|
|
F4 at 0 range 12 .. 15;
|
|
end record;
|
|
|
|
type R32 is record
|
|
F1 : Four_Bits;
|
|
F2 : Four_Bits;
|
|
F3 : Four_Bits;
|
|
F4 : Four_Bits;
|
|
F5 : Four_Bits;
|
|
F6 : Four_Bits;
|
|
F7 : Four_Bits;
|
|
F8 : Four_Bits;
|
|
end record;
|
|
for R32 use record
|
|
F1 at 0 range 0 .. 3;
|
|
F2 at 0 range 4 .. 7;
|
|
F3 at 0 range 8 .. 11;
|
|
F4 at 0 range 12 .. 15;
|
|
F5 at 0 range 16 .. 19;
|
|
F6 at 0 range 20 .. 23;
|
|
F7 at 0 range 24 .. 27;
|
|
F8 at 0 range 28 .. 31;
|
|
end record;
|
|
|
|
C_16 : constant R16 := (2, 3, 5, 7);
|
|
C_32 : constant R32 := (1, 1, 2, 3, 5, 8, 13, 5);
|
|
|
|
V_16 : R16;
|
|
pragma Atomic (V_16);
|
|
V_32 : R32;
|
|
pragma Atomic (V_32);
|
|
|
|
end Atomic1_Pkg;
|