00001 #ifndef PORT_MAPPING_H_INCLUDED_
00002 #define PORT_MAPPING_H_INCLUDED_
00003 
00004 #include <list>
00005 
00006 #include "rose.h"
00007 
00008 #include "instance_tree.h"
00009 
00010 namespace risc {
00011 
00012 class Port;
00013 class Module;
00014 
00020 std::list<InstanceTree> get_mapped_channel_instances(Port *port);
00021 
00026 InstanceTree get_mapped_channel_instance(InstanceTree port);
00027 
00034 SgVariableSymbol* port_mapping_style1(
00035     SgFunctionCallExp *func_call,
00036     SgVariableSymbol *port,
00037     SgVariableDefinition *parent_variable);
00038 
00045 SgVariableSymbol* port_mapping_style2(
00046     SgFunctionCallExp *func_call,
00047     SgVariableSymbol *port,
00048     SgVariableDefinition *parent_variable);
00049 
00055 SgVariableSymbol* port_mapping_style3(
00056     SgFunctionCallExp *func_call,
00057     SgVariableSymbol *port,
00058     Module *parent_module,
00059     SgVariableDefinition *parent_variable);
00060 
00072 SgVariableSymbol* get_mapped_symbol(
00073     SgVariableSymbol *port,
00074     Module *parent_module,
00075     SgVariableDefinition *parent_variable);
00076 
00077 } 
00078 
00079 #endif 
00080 
00081