blob: 74053b38eb6b3fa82be553edcf11adaf4c158485 [file] [log] [blame]
package Pack22_Pkg is
type byte is mod 256;
Temp_buffer : array (0..8) of byte:= (others => 0);
for Temp_buffer'Alignment use 2;
subtype Id is Short_integer;
generic
Dummy : Integer := 0;
package Bit_Map_Generic is
type List is private;
function "xor" (L, R : List) return List;
private
type Offset_T is range 0 .. Id'Last;
type Counter_T is new short_integer;
for Counter_T'Size use 16;
type Bit_List is array (Id range <>) of Boolean;
pragma Pack (Bit_List);
type List_Counter_T (Is_Defined : Boolean := True) is
record
Dummy : Boolean := False;
case Is_Defined is
when True =>
Counter : Counter_T := 0;
when False =>
null;
end case;
end record;
for List_Counter_T use
record
Is_Defined at 0 range 0 .. 7;
Dummy at 1 range 0 .. 7;
Counter at 2 range 0 .. 15;
end record;
type List is
record
Offset : Offset_T := Offset_T (1) - 1;
Counter : List_Counter_T;
Bits : Bit_List (1 .. 6);
end record;
for List use
record
Offset at 0 range 0 .. 15;
Counter at 2 range 0 .. 31;
end record;
type Iterator is
record
No_More_Id : Boolean := True;
Current_Id : Id;
The_List : List;
end record;
end Bit_Map_Generic;
end Pack22_Pkg;