1package pkg is
2  type rec_t is record
3    boolean_field : boolean;
4    integer_field : integer;
5  end record;
6
7  type other_rec_t is record
8    integer_field : integer;
9  end record;
10
11  type protected_t is protected
12  end protected protected_t;
13
14  procedure proc(variable prot : inout protected_t; variable rec : inout rec_t);
15  procedure proc(variable prot : inout protected_t; variable rec : inout other_rec_t);
16end package;
17
18package body pkg is
19  type protected_t is protected body
20  end protected body protected_t;
21
22  procedure proc (variable prot : inout protected_t; variable rec : inout rec_t) is
23  begin
24  end;
25
26  procedure proc(variable prot : inout protected_t; variable rec : inout other_rec_t) is
27  begin
28  end;
29end package body;
30
31use work.pkg.all;
32
33package other_pkg is
34  shared variable default_prot : protected_t;
35
36  procedure other_proc(variable rec : inout rec_t);
37  alias other_proc is proc[protected_t, rec_t];
38
39  procedure other_proc(variable rec : inout other_rec_t);
40  alias other_proc is proc[protected_t, other_rec_t];
41end package;
42