1 typedef struct opaque_struct * opaque_struct_pointer_type;
2 
3 typedef struct public_struct_type *public_struct_pointer_type;
4 typedef struct public_struct_type2 *public_struct_pointer_type2;
5 
6 typedef void (*FuncPointerType0) (public_struct_pointer_type,
7 				  public_struct_pointer_type);
8 
9 typedef void (*FuncPointerType1) (public_struct_pointer_type, int);
10 
11 typedef struct public_struct_type2
12 {
13   FuncPointerType0 m0;
14   FuncPointerType1 m1;
15 } public_struct_type2;
16 
17 typedef struct public_struct_type
18 {
19   opaque_struct_pointer_type m0;
20   public_struct_type2 *m1;
21 } public_struct_type;
22 
23 void foo(public_struct_pointer_type p1);
24 
25 void bar(second_public_struct_pointer_type p1,
26 	 second_opaque_struct_pointer_type p2);
27