1package Atomic1_Pkg is 2 3 type Four_Bits is mod 2 ** 4; 4 5 type R16 is record 6 F1 : Four_Bits; 7 F2 : Four_Bits; 8 F3 : Four_Bits; 9 F4 : Four_Bits; 10 end record; 11 for R16 use record 12 F1 at 0 range 0 .. 3; 13 F2 at 0 range 4 .. 7; 14 F3 at 0 range 8 .. 11; 15 F4 at 0 range 12 .. 15; 16 end record; 17 18 type R32 is record 19 F1 : Four_Bits; 20 F2 : Four_Bits; 21 F3 : Four_Bits; 22 F4 : Four_Bits; 23 F5 : Four_Bits; 24 F6 : Four_Bits; 25 F7 : Four_Bits; 26 F8 : Four_Bits; 27 end record; 28 for R32 use record 29 F1 at 0 range 0 .. 3; 30 F2 at 0 range 4 .. 7; 31 F3 at 0 range 8 .. 11; 32 F4 at 0 range 12 .. 15; 33 F5 at 0 range 16 .. 19; 34 F6 at 0 range 20 .. 23; 35 F7 at 0 range 24 .. 27; 36 F8 at 0 range 28 .. 31; 37 end record; 38 39 C_16 : constant R16 := (2, 3, 5, 7); 40 C_32 : constant R32 := (1, 1, 2, 3, 5, 8, 13, 5); 41 42 V_16 : R16; 43 pragma Atomic (V_16); 44 V_32 : R32; 45 pragma Atomic (V_32); 46 47end Atomic1_Pkg; 48