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