00001 #ifndef _CStateVar_H_
00002 #define _CStateVar_H_
00003
00004 #include "xi-symbol.h"
00005 #include "xi-util.h"
00006
00007 #include <list>
00008
00009 namespace xi {
00010 class ParamList;
00011
00012 struct CStateVar {
00013 int isVoid;
00014 XStr* type;
00015 int numPtrs;
00016 XStr* name;
00017 XStr *byRef, *declaredRef;
00018 bool byConst;
00019 XStr* arrayLength;
00020 int isMsg;
00021 bool isRdma;
00022 bool isFirstRdma;
00023 bool isRecvRdma;
00024 bool isCounter, isSpeculator, isBgParentLog;
00025
00026 CStateVar(int v, const char* t, int np, const char* n, XStr* r, const char* a, int m);
00027 CStateVar(ParamList* pl);
00028 };
00029
00030 struct EncapState {
00031 Entry* entry;
00032 XStr* type;
00033 XStr* name;
00034 bool isMessage;
00035 bool isForall;
00036 bool isBgParentLog;
00037 std::list<CStateVar*> vars;
00038
00039 EncapState(Entry* entry, std::list<CStateVar*>& vars);
00040 };
00041 }
00042
00043 #endif