Predator  [unstable] git snapshot
symjoin.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2010 Kamil Dudka <kdudka@redhat.com>
3  *
4  * This file is part of predator.
5  *
6  * predator is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * any later version.
10  *
11  * predator is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with predator. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef H_GUARD_SYM_JOIN_H
21 #define H_GUARD_SYM_JOIN_H
22 
23 /**
24  * @file symjoin.hh
25  * @todo some dox
26  */
27 
28 #include "join_status.hh"
29 #include "symheap.hh"
30 #include "symtrace.hh" // for Trace::TIdMapper
31 
32 struct ShapeProps;
33 
34 /// @todo some dox
35 bool joinData(
36  SymHeap &sh,
37  const ShapeProps &props,
38  TObjId obj1,
39  TObjId obj2,
40  TObjId *pDst = 0,
41  TObjSet protoObjs[1][2] = 0,
42  EJoinStatus *pStatus = 0,
43  Trace::TIdMapper *pIdMapper = 0);
44 
45 /// @todo some dox
46 bool joinSymHeaps(
47  EJoinStatus *pStatus,
48  SymHeap *dst,
49  SymHeap sh1,
50  SymHeap sh2,
51  bool allowThreeWay = true);
52 
53 /// enable/disable debugging of symjoin
54 void debugSymJoin(bool enable);
55 
56 #endif /* H_GUARD_SYM_JOIN_H */