#ifndef __DO_RMAHDR_
#define __DO_RMAHDR_

#ifdef __cplusplus
  extern "C" {
#endif

typedef unsigned long UP;
typedef unsigned U;
typedef unsigned char UB;
typedef unsigned char scalar;
typedef struct vec32 vec32;
typedef unsigned short US;
typedef unsigned char SVAL;
typedef unsigned char TYPEB;
typedef struct qird QIRD;
typedef unsigned char UST_e;
typedef unsigned uscope_t;
typedef U  NumLibs_t;
struct vec32 {
    U  I1;
    U  I2;
};
typedef unsigned long RP;
typedef unsigned long RO;
typedef unsigned short HsimEdge;
typedef unsigned char HsimExprChar;
typedef enum {
    PD_SING = 0,
    PD_RF = 1,
    PD_PLSE = 2,
    PD_PLSE_RF = 3,
    PD_NULL = 4
} PD_e;
typedef U  FlatNodeNum;
typedef U  InstNum;
typedef unsigned long long TimeStamp64;
typedef unsigned long long TimeStamp;
typedef TimeStamp  RmaTimeStamp;
typedef TimeStamp64  RmaTimeStamp64;
typedef union {
    double I626;
    unsigned long long I627;
    unsigned  I628[2];
} rma_clock_struct;
typedef struct eblk EBLK;
typedef int (* E_fn)(void);
typedef struct eblk {
    struct eblk * I635;
    E_fn  I636;
    struct iptmpl * I637;
    unsigned I639;
    struct eblk * I640;
} eblk_struct;
typedef struct {
    RP  I635;
    RP  I636;
    RP  I637;
    unsigned I639;
    RP  I640;
} RmaEblk;
typedef union {
    double I626;
    unsigned long long I627;
    unsigned  I628[2];
} clock_struct;
typedef clock_struct  RmaClockStruct;
typedef struct RmaRetain_t RmaRetain;
struct RmaRetain_t {
    RP  I666;
    RmaEblk  I634;
    U  I667;
    US  I668 :1;
    US  I669 :4;
    US  I172 :2;
    US  state :2;
    US  I671 :1;
    US  I672 :2;
    US  I673 :2;
    US  fHsim :1;
    US  I674 :1;
    scalar  newval;
    scalar  I676;
    RP  I677;
};
typedef struct MPSched MPS;
typedef struct RmaMPSched RmaMps;
struct MPSched {
    MPS  * I656;
    scalar  I657;
    scalar  I658;
    scalar  I659;
    scalar  fHsim :1;
    scalar  I172 :6;
    U  I661;
    EBLK  I662;
    void * I663;
    UP   I664[1];
};
struct RmaMPSched {
    RP  I656;
    scalar  I657;
    scalar  I658;
    scalar  I659;
    scalar  fHsim :1;
    scalar  I172 :6;
    U  I661;
    RmaEblk  I662;
    RP  I663;
    RP   I664[1];
};
typedef struct RmaMPSchedPulse RmaMpsp;
struct RmaMPSchedPulse {
    RP  I656;
    scalar  I657;
    scalar  I658;
    scalar  I659;
    scalar  I172;
    U  I661;
    RmaEblk  I662;
    scalar  I673;
    scalar  I681;
    scalar  I682;
    scalar  I683;
    U  I684;
    RmaClockStruct  I685;
    RmaClockStruct  I686;
    U  state;
    U  I687;
    RP  I637;
    RP  I688;
    RP  I689;
    RP   I664[1];
};
typedef struct MPItem MPI;
struct MPItem {
    U  * I691;
    void * I692;
};
typedef struct {
    RmaEblk  I634;
    RP  I693;
    scalar  I694;
    scalar  I673;
    scalar  I695;
} RmaTransEventHdr;
typedef struct RmaMPSchedPulseNewCsdf RmaMpspNewCsdf;
struct RmaMPSchedPulseNewCsdf {
    RP  I656;
    scalar  I657;
    scalar  I658;
    scalar  I659;
    scalar  fHsim :1;
    scalar  I172 :6;
    U  I661;
    RmaEblk  I662;
    scalar  I673;
    scalar  I681;
    scalar  I682;
    scalar  I683;
    U  state :4;
    U  I697 :28;
    RmaClockStruct  I685;
    RmaClockStruct  I686;
    RP  I698;
    RP  I637;
    RP  I699;
    RP   I664[1];
};
typedef struct red_t {
    U  I700;
    U  I701;
    U  I702;
} RED;
typedef struct predd {
    PD_e  I172;
    RED   I703[1];
} PREDD;
typedef unsigned long long ULL;
union rhs_value {
    vec32  I704;
    scalar  I694;
    vec32  * I673;
    double I705;
    U  I706;
};
typedef struct nbs_t {
    struct nbs_t * I707;
    struct nbs_t * I709;
    void (* I710)(struct nbs_t * I711);
    unsigned I712 :1;
    unsigned I713 :1;
    unsigned I714 :1;
    unsigned I715 :1;
    unsigned I716 :28;
    U  I717;
    void * I718;
    union rhs_value I719;
    vec32  I626;
    union {
        struct nbs_t * first;
        struct nbs_t * last;
    } I721;
} NBS;
typedef struct {
    RP  I722;
    RP  I688;
    RP  I637;
    RP  I689;
    RmaEblk  I634;
    RmaEblk  I723;
    RP  I724;
    scalar  I694;
    scalar  I673;
    char state;
    uscope_t  I725;
    U  I726;
    RP  I727;
    scalar  I681;
    scalar  I682;
    scalar  I683;
    RmaClockStruct  I685;
    RmaClockStruct  I686;
    RP  I663;
} RmaPulse;
typedef struct {
    UP  I728;
    int * I729;
} MdaAndDescInfo;
struct etype {
    U  I545 :8;
    U  I546 :24;
    U  I547;
    U  I548 :1;
    U  I549 :1;
    U  I550 :1;
    U  I551 :1;
    U  I552 :1;
    U  I553 :1;
    U  I554 :1;
    U  I555 :1;
    U  I556 :1;
    U  I557 :4;
    U  I558 :1;
    U  I559 :1;
    U  I560 :1;
    U  I561 :1;
    U  I562 :1;
    U  I563 :1;
    U  I564 :1;
    U  I565 :1;
    U  I566 :1;
    U  I567 :1;
    U  I568 :2;
    U  I569 :1;
    U  I570 :2;
    U  I571 :1;
    U  I572 :1;
    U  I573 :2;
    U  I574;
    MdaAndDescInfo  * I575;
    U  I576;
    U  I577;
    U  I578 :1;
    U  I579 :1;
    U  I580 :1;
    U  I581 :1;
    U  I582 :2;
    U  I583 :2;
    U  I584 :1;
    U  I585 :1;
    U  I586 :1;
    U  I587 :1;
    U  I588 :1;
    U  I589 :1;
    U  I590 :18;
};
typedef enum {
    QIRDModuleC = 1,
    QIRDSVPackageC = 2,
    QIRDSpiceModuleC = 3
} QIRDModuleType;
typedef struct {
    U  I733 :1;
    U  I734 :1;
    U  I735 :1;
    U  I736 :1;
    U  I737 :1;
    U  I738 :1;
    U  I739 :1;
    U  I740 :1;
    U  I741 :1;
    U  I742 :1;
    U  I743 :1;
    U  I744 :1;
    U  I745 :1;
    U  I746 :1;
    U  I747 :1;
    U  I748 :1;
    U  I749 :1;
    U  I750 :1;
    U  I751 :1;
    U  I752 :1;
    QIRDModuleType  I753 :2;
    U  I754 :1;
    U  I755 :1;
    U  I756 :1;
    U  I757 :1;
    U  I758 :1;
    U  I759 :1;
    U  I760 :1;
    U  I761 :1;
    U  I762 :1;
    U  I763 :1;
    U  I764 :1;
    U  I765 :1;
    U  I766 :1;
    U  I767 :1;
    U  I768 :1;
    U  I769 :1;
} BitFlags;
struct qird {
    US  I4;
    US  I5;
    U  I6;
    U  I7;
    char * I8;
    char * I9;
    U  * I10;
    char * I11;
    char * I12;
    U  I13;
    U  I14;
    struct vcd_rt * I15;
    U  I17;
    struct _vcdOffset_rt * I18;
    UP  * I20;
    U  I21;
    UP  * I22;
    U  I23;
    U  I24;
    U  I25;
    U  * I26;
    U  * I27;
    void * I28;
    void * I29;
    U  I30;
    int I31;
    UP  I32;
    U  I33;
    U  I34;
    U  I35;
    UP  I36;
    U  * I37;
    BitFlags  I38;
    U  I39;
    U  I40;
    U  I41;
    U  I42;
    U  I43;
    U  * I44;
    U  I45;
    U  * I46;
    U  I47;
    U  I48;
    U  I49;
    U  I50;
    U  I51;
    U  I52;
    U  I53;
    U  * I54;
    U  * I55;
    U  I56;
    U  I57;
    U  * I58;
    U  I59;
    U  * I60;
    U  I61;
    U  I62;
    U  I63;
    U  I64;
    U  * I65;
    U  I66;
    U  * I67;
    U  I68;
    U  I69;
    U  I70;
    U  I71;
    U  I72;
    U  I73;
    U  * I74;
    char * I75;
    U  I76;
    U  I77;
    U  I78;
    U  I79;
    U  I80;
    U  * I81;
    U  I82;
    U  I83;
    UP  * I84;
    U  I85;
    U  I86;
    UP  * I87;
    U  I88;
    U  I89;
    U  I90;
    U  I91;
    U  I92;
    U  I93;
    U  * I94;
    U  I95;
    U  I96;
    U  * I97;
    U  * I98;
    U  * I99;
    U  * I100;
    U  * I101;
    U  I102;
    U  I103;
    struct taskInfo * I104;
    U  I106;
    U  I107;
    int * I108;
    UP  * I109;
    U  I110;
    U  I111;
    U  I112;
    U  I113;
    U  I114;
    struct qrefer * I115;
    U  * I117;
    unsigned * I118;
    void * I119;
    U  I120;
    U  I121;
    U  I122;
    U  I123;
    U  * I124;
    U  I125;
    U  * I126;
    U  I127;
    U  I128;
    U  I129;
    U  * I130;
    U  I131;
    U  * I132;
    U  I133;
    U  I134;
    U  * I135;
    U  I136;
    U  I137;
    U  * I138;
    U  * I139;
    U  * I140;
    U  I141;
    U  I142;
    U  I143;
    U  I144;
    U  I145;
    struct qrefee * I146;
    U  * I148;
    U  I149;
    struct qdefrefee * I150;
    U  * I152;
    int (* I153)(void);
    char * I154;
    U  I155;
    U  I156;
    void * I157;
    void * I158;
    NumLibs_t  I159;
    char * I160;
    U  * I161;
    U  I162;
    U  I163;
    U  I164;
    U  I165;
    U  I166;
    U  * I167;
    U  * I168;
    int I169;
    struct clock_load * I170;
    int I185;
    struct clock_data * I186;
    int I202;
    struct clock_hiconn * I203;
    U  I207;
    int I208;
    U  I209;
    int I210;
    U  * I211;
    U  * I212;
    U  I213;
    void * I214;
    U  I215;
    U  I216;
    UP  * I217;
    void * I218;
    U  I219;
    UP  * I220;
    U  * I221;
    int (* I222)(void);
    U  * I223;
    UP  * I224;
    U  * I225;
    U  I226 :1;
    U  I227 :31;
    U  I228;
    U  I229;
    UP  * I230;
    U  * I231;
    U  I232 :1;
    U  I233 :1;
    U  I234 :1;
    U  I235 :1;
    U  I236 :28;
    U  I237;
    U  I238;
    U  I239;
    U  I240;
    UP  * I241;
    UP  * I242;
    U  * I243;
    U  * I244;
    UP  * I245;
    UP  * I246;
    UP  * I247;
    U  * I248;
    UP  * I249;
    UP  * I250;
    UP  * I251;
    char * I252;
    U  I253;
    U  I254;
    U  I255;
    UP  * I256;
    UP  * I257;
    UP  * I258;
    UP  * I259;
    UP  * I260;
    UP  * I261;
    UP  * I262;
    UP  * I263;
    UP  * I264;
    UP  * I265;
    U  I266;
    U  I267;
    U  I268;
    U  I269;
    U  I270;
    U  I271;
    U  I272;
    char * I273;
    U  * I274;
    U  I275;
    U  I276;
    U  I277;
    U  I278;
    U  I279;
    U  I280;
    UP  * I281;
    UP  * I282;
    UP  * I283;
    UP  * I284;
    struct daidirInfo * I285;
    struct vcs_tftable * I287;
    U  I289;
    UP  * I290;
    UP  * I291;
    U  I292;
    U  I293;
    U  I294;
    UP  * I295;
    U  * I296;
    struct qird_hil_data * I297;
    U  * I299;
    UP  (* I300)(void);
    UP  (* I301)(void);
    UP  (* I302)(void);
    UP  (* I303)(void);
    UP  (* I304)(void);
    int * I305;
    int (* I306)(void);
    char * I307;
    UP  * I308;
    UP  * I309;
    UP  (* I310)(void);
    int (* I311)(void);
    int * I312;
    int (* I313)(void);
    int * I314;
    char * I315;
    U  * I316;
    U  * I317;
    void * I318;
    void * I319;
    U  I320;
    U  I321;
    U  I322;
    U  I323;
    U  I324;
    U  I325;
    UP  * I326;
    U  * I327;
    U  * I328;
    U  I329 :15;
    U  I330 :14;
    U  I331 :1;
    U  I332 :1;
    U  I333 :1;
    U  I334 :3;
    U  I335 :1;
    U  I336 :1;
    U  I337 :1;
    U  I338 :17;
    U  I339 :3;
    U  I340 :5;
    U  I341 :1;
    U  I342;
    struct scope * I343;
    U  I345;
    U  I346;
    U  I347;
    U  * I348;
    U  * I349;
    U  * I350;
    U  I351;
    U  I352;
    U  I353;
    struct pcbt * I354;
    U  I363;
    U  I364;
    U  I365;
    U  I366;
    void * I367;
    void * I368;
    void * I369;
    int I370;
    U  * I371;
    U  I372;
    U  I373;
    U  I374;
    U  I375;
    U  I376;
    U  I377;
    U  I378;
    void * I379;
    UP  * I380;
    U  I381;
    U  I382;
    void * I383;
    U  I384;
    void * I385;
    U  I386;
    void * I387;
    U  I388;
    int (* I389)(void);
    int (* I390)(void);
    void * I391;
    void * I392;
    void * I393;
    U  I394;
    U  I395;
    U  I396;
    U  I397;
    U  I398;
    U  I399;
    char * I400;
    U  I401;
    U  * I402;
    U  I403;
    U  * I404;
    U  I405;
    U  I406;
    U  I407;
    U  I408;
    U  I409;
    U  I410;
    U  * I411;
    U  I412;
    U  I413;
    U  * I414;
    U  I415;
    U  * I416;
    char * I417;
    U  I418;
    U  I419;
    U  I420;
    U  I421;
    U  * I422;
    U  * I423;
    U  I424;
    U  * I425;
    U  * I426;
    U  I427;
    U  I428;
    U  I429;
    struct cosim_info * I430;
    U  I432;
    U  * I433;
    U  I434;
    U  I435;
    U  * I436;
    U  I437;
    U  * I438;
    U  I439;
    U  I440;
    U  * I441;
    U  I442;
    U  * I443;
    U  I444;
    U  I445;
    U  I446;
    U  I447;
    U  I448;
    U  I449;
    U  I450;
    U  I451;
    U  I452;
    U  * I453;
    U  * I454;
    void (* I455)(void);
    U  * I456;
    UP  * I457;
    struct mhdl_outInfo * I458;
    UP  * I460;
    U  I461;
    UP  * I462;
    U  I463;
    void * I464;
    U  * I465;
    void * I466;
    U  I467;
    U  I468;
    void * I469;
    void * I470;
    U  * I471;
    U  * I472;
    U  * I473;
    U  * I474;
    void * I475;
    U  I476;
    void * I477;
    U  * I478;
    char * I479;
    int (* I480)(void);
    U  * I481;
    char * I482;
    char * I483;
    U  I484;
    U  * I485;
    char * I486;
    U  I487;
    struct regInitInfo * I488;
    UP  * I490;
    U  * I491;
    char * I492;
    U  I493;
    U  I494;
    U  I495;
    U  I496;
    U  I497;
    U  I498;
    U  I499;
    U  I500;
    U  * I501;
    U  * I502;
    U  I503;
    U  I504;
    U  I505;
    U  I506;
    UP  * I507;
    U  I508;
    UP  * I509;
    U  I510;
    U  I511;
    U  I512;
    U  * I513;
    U  I514;
    U  I515;
    U  * I516;
    U  * I517;
    UP  * I518;
    UP  * I519;
    void * I520;
    UP  I521;
    void * I522;
    void * I523;
    void * I524;
    void * I525;
    U  * I526;
    U  * I527;
    void * I528;
    U  I529;
    U  I530;
    U  I531;
    int I532;
    void * I533;
    UP  * I534;
    UP  I535;
    U  I536;
    char * I537;
    U  * I538;
    U  * I539;
    char * I540;
    int * I541;
    UP  * I542;
    struct etype * I543;
    U  I591;
    U  I592;
    U  * I593;
    U  I594;
    U  * I595;
    U  I596;
    U  I597;
    U  * I598;
};
typedef struct pcbt {
    U  * I356;
    UP  I357;
    U  I358;
    U  I359;
    U  I360;
    U  I361;
    U  I362;
} PCBT;
struct iptmpl {
    QIRD  * I641;
    struct vcs_globals_t * I642;
    void * I644;
    UP  I645;
    UP  I646;
    struct iptmpl * I637[2];
};
typedef unsigned long long FileOffset;
typedef struct _hsimPeriodL {
    char  I803[256];
    struct _hsimPeriodL * I773;
} HsimPeriodL;
typedef struct {
    U   I805[2];
    U  I806 :1;
    U  I807 :1;
    U  I808 :8;
    U  I809 :8;
    U  I810 :8;
    U  I811 :4;
    unsigned long long I812;
    unsigned long long I813;
    unsigned long long I814;
    unsigned long long I815;
    unsigned long long I816;
    U  I817;
    U  I818;
    U  I819;
    U  I820;
    HsimPeriodL  * I821;
    HsimPeriodL  * I822;
    U  I823;
} HsimSignalMonitor;
typedef struct {
    FlatNodeNum  I824;
    InstNum  I825;
    U  I781;
    scalar  I826;
    UB  I827;
    UB  I828;
    UB  I829;
    U  I830;
    U  I831;
    U  I832;
    U  I833;
    U  I834;
    HsimSignalMonitor  * I835;
    RmaTimeStamp64  I836;
    U  I837;
    RmaTimeStamp64  I838;
} HsimNodeRecord;
typedef struct {
    RP  I839;
    RP  I637;
} RmaIbfIp;
typedef struct {
    RP  I839;
    RP  pcode;
} RmaIbfPcode;
typedef struct {
    RmaEblk  I634;
} RmaEvTriggeredOrSyncLoadCg;
typedef struct {
    RmaEblk  I634;
    RP  I840;
} RmaAnySchedSampleSCg;
typedef struct {
    RmaEblk  I634;
    RP  I841;
    RP  I840;
    vec32  I842;
} RmaAnySchedVCg;
typedef struct {
    RmaEblk  I634;
    RP  I841;
    RP  I840;
    vec32   I672[1];
} RmaAnySchedWCg;
typedef struct {
    RmaEblk  I634;
    RP  I841;
    RP  I840;
    scalar   I843[1];
} RmaAnySchedECg;
typedef struct {
    RP  I844;
} RmaRootCbkCg;
typedef struct {
    RP  I845;
} RmaRootVcdCg;
typedef struct {
    RP  I846;
} RmaRootForceCbkCg;
typedef struct {
    RmaEblk  I634;
    RP  I847;
} RmaForceCbkJmpCg;
typedef struct {
    U  I5;
    U  I630 :30;
    U  I848 :1;
    U  I849 :1;
    vec32  I704;
    U  I850;
    RP  I851;
    RP  I852;
} RmaForceSelectorV;
typedef struct {
    U  I5;
    RmaIbfPcode  I856;
} RmaNetTypeDriverGate;
typedef struct {
    U  I5;
    U  I601;
    RmaIbfPcode   I856[1];
} RmaNetTypeScatterGate;
typedef struct {
    U  I5;
    RmaIbfPcode  I856;
} RmaNetTypeGatherGate;
typedef struct {
    RmaIbfPcode  I857;
    U  I858 :3;
    U  I859 :1;
    U  I860 :1;
} RmaNbaGateOfn;
typedef struct {
    NBS  I861;
    RmaIbfPcode  I857;
} RmaNbaGate1;
typedef struct {
    RP  ptable;
    RP  pfn;
    RP  pcode;
} Rma1InputGateFaninCgS;
typedef struct {
    U  I5;
    U  iinput;
    RP  I864;
} RmaCondOptLoad;
typedef struct {
    U  I5;
    U  iinput;
    RP  I864;
} RmaMacroStateUpdate;
typedef struct {
    U  I5;
    U  state;
    U  I865;
    U  * I866;
} RmaMacroState;
typedef struct {
    U  iinput;
    RP  I867;
} RmaMultiInputLogicGateCg;
typedef struct {
    U  iinput;
    RP  ptable;
    RP  I867;
} RmaSeqPrimEdgeInputCg;
typedef struct {
    RmaEblk  I634;
    RP  pcode;
} RmaSched0GateCg;
typedef struct {
    RmaEblk  I634;
    RP  pcode;
    RP  pfn;
} RmaUdpDeltaGateCg;
typedef struct {
    RmaEblk  I634;
    RP  pcode;
    RP  pfn;
    scalar  I868;
} RmaSchedDeltaGateCg;
typedef struct {
    UB  I869;
    RP  I870;
    RP  I871;
} RmaPropNodeSeqLhsSCg;
typedef struct {
    RmaEblk  I634;
    RP  pcode;
    U  I781;
    U   I623[1];
} RmaBitEdgeEblk;
typedef struct {
    U  I622;
    U  I872;
    U   I873[1];
} RmaDbsedRtlLoads;
typedef struct {
    U  I5;
    RP  I703;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaGateDelay;
typedef struct {
    U  I5;
    union {
        RP  I979;
        RP  I1204;
        RP  I1215;
    } I677;
    RmaIbfPcode  I857;
} RmaMPDelay;
typedef struct {
    U  I5;
    RmaPulse  I874;
    RmaIbfPcode  I857;
} RmaMPPulseHybridDelay;
typedef struct {
    U  I5;
    RmaIbfPcode  I857;
    RmaMps  I875;
} RmaMPHybridDelay;
typedef struct {
    U  I5;
    U  I876;
    RmaIbfPcode  I857;
    RmaEblk  I662;
} RmaMPHybridDelayPacked;
typedef struct {
    U  I5;
    RmaIbfPcode  I857;
    RmaMpspNewCsdf  I877;
} RmaMPPulseDelay;
typedef struct {
    U  I5;
    RmaMpsp  I877;
    RmaIbfPcode  I857;
} RmaMPPulseOptHybridDelay;
typedef struct {
    U  I5;
    U  I702;
    RmaTransEventHdr  I785;
    RP  I699;
    RmaIbfPcode  I857;
} RmaNtcTransDelay;
typedef struct {
    U  I5;
    U  I702;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaNtcTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaNtcTransZeroDelay;
typedef struct {
    U  I5;
    U  I878;
    U  I879;
    RmaTransEventHdr  I785;
    RP  I699;
    RmaIbfPcode  I857;
} RmaNtcTransDelayRF;
typedef struct {
    U  I5;
    U  I878;
    U  I879;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaNtcTransMpwOptDelayRF;
typedef struct {
    U  I5;
    RP  I880;
    RmaTransEventHdr  I785;
    RP  I699;
    RmaIbfPcode  I857;
} RmaICTransDelay;
typedef struct {
    U  I5;
    RP  I880;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaICTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaICTransZeroDelay;
typedef struct {
    U  I5;
    RP  I703;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaICSimpleDelay;
typedef struct {
    U  I5;
    union {
        RP  psimple;
        RP  I1204;
        RP  I1215;
    } I677;
    RmaIbfPcode  I857;
} RmaICDelay;
typedef struct {
    U  I5;
    RP  I703;
    RmaEblk  I634;
    RmaIbfPcode  I857;
} RmaPortDelay;
typedef struct TableAssign_ {
    struct TableAssign_ * I773;
    struct TableAssign_ * I693;
    U  I5;
    U  iinput;
    RP  ptable;
    RP  I867;
} TableAssign;
typedef struct {
    U  I5;
    RP  I693;
    RP  I882;
} RmaTableAssignList;
typedef struct {
    RP  I883;
} RmaWakeupListCg;
typedef struct {
    U  I884;
    U  I885;
    RmaTimeStamp   I886[1];
} RmaTsArray;
typedef struct {
    U  iinput;
    RP  I887;
} RmaConditionsMdb;
typedef struct {
    RP  I773;
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
} RmaTcCoreSimple;
typedef struct {
    RP  I773;
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I898;
} RmaTcCoreConditional;
typedef struct {
    RP  I773;
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I898;
    RP  I899;
} RmaTcCoreConditionalOpt;
typedef struct {
    RP  I773;
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I899;
    RP  I900;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtc;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
} RmaTcCoreSimpleNoList;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I903;
} RmaTcCoreSimpleNoListMdb;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I898;
} RmaTcCoreConditionalNoList;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I898;
    RP  I899;
} RmaTcCoreConditionalOptNoList;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I899;
    RP  I900;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoList;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I899;
    RP  I900;
    RP  I903;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoListMdb;
typedef struct {
    RP  I888;
    RP  I629;
    U  I889;
    scalar  I890;
    scalar  I891;
    US  I892 :1;
    US  I893 :1;
    US  I894 :1;
    US  I895 :1;
    US  I896 :1;
    US  I897 :5;
    RP  I898;
    RP  I903;
} RmaTcCoreConditionalNoListMdb;
typedef struct {
    RP  I887;
    RmaTimeStamp  I904;
    scalar  I905;
} RmaConditionalTSLoadNoList;
typedef struct {
    RP  I773;
    RP  I887;
    RmaTimeStamp  I904;
    scalar  I905;
} RmaConditionalTSLoad;
typedef struct {
    RmaTimeStamp  I904;
    scalar  I905;
    US  I890;
    RP  I899;
} RmaConditionalTSLoadOptNoList;
typedef struct {
    RP  I773;
    RmaTimeStamp  I904;
    scalar  I905;
    US  I890;
    RP  I899;
} RmaConditionalTSLoadOpt;
typedef struct {
    RP  I899;
    RP  I906;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoList;
typedef struct {
    RP  I903;
    RP  I899;
    RP  I906;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoListMdb;
typedef struct {
    RP  I773;
    RP  I899;
    RP  I906;
    U  I901;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtc;
typedef struct {
    U  I907;
    U  I908;
    FlatNodeNum  I909;
    U  I781;
    U  I910;
    U  I911;
    RmaIbfPcode  I857;
    union {
        scalar  I912;
        vec32  I913;
        scalar  * I914;
        vec32  * I915;
    } val;
} RmaScanSwitchData;
typedef struct {
    RP  I773;
    RP  I693;
    RP  I916;
} RmaDoublyLinkedListElem;
typedef struct {
    RP  I917;
    U  I918 :1;
    U  I919 :1;
    U  I920 :1;
    U  I921 :4;
    U  I573 :25;
    U  I922;
} RmaSwitchGateInCbkListInfo;
typedef struct {
    union {
        RmaDoublyLinkedListElem  I1247;
        RmaSwitchGateInCbkListInfo  I2;
    } I610;
    RmaIbfPcode  I857;
} RmaSwitchGate;
struct clock_load {
    U  I172 :5;
    U  I173 :12;
    U  I174 :1;
    U  I175 :2;
    U  I176 :1;
    U  I177 :1;
    U  I178 :1;
    U  I179 :9;
    U  I180;
    U  I181;
    void (* pfn)(void * I183, char val);
};
typedef struct clock_data {
    U  I188 :1;
    U  I189 :1;
    U  I190 :1;
    U  I191 :1;
    U  I172 :5;
    U  I173 :12;
    U  I192 :6;
    U  I193 :1;
    U  I175 :2;
    U  I176 :1;
    U  I179 :1;
    U  I194;
    U  I195;
    U  I196;
    U  I180;
    U  I197;
    U  I198;
    U  I199;
    U  I200;
    U  I201;
} HdbsClockData;
struct clock_hiconn {
    U  I205;
    U  I206;
    U  I180;
    U  I175;
};
typedef struct _RmaDaiCg {
    RP  I923;
    RP  I924;
    U  I925;
} RmaDaiCg;
typedef union _RmaCbkMemOptUnion {
    RP  I923;
    RP  I926;
    RP  I927;
} RmaCbkMemOptUnion;
typedef struct _RmaDaiOptCg {
    RmaCbkMemOptUnion  I928;
} RmaDaiOptCg;
struct futq {
    struct futq * I647;
    struct futq * I649;
    RmaEblk  * I650;
    RmaEblk  * I651;
    U  I639;
};
struct sched_table {
    struct futq * I652;
    struct futq I653;
    struct hash_bucket * I654;
};
struct dummyq_struct {
    clock_struct  I932;
    EBLK  * I933;
    EBLK  * I934;
    struct futq * I935;
    struct futq * I936;
    struct sched_table * I937;
    struct millenium * I939;
    EBLK  * I941;
    EBLK  * I942;
    EBLK  * I943;
    EBLK  * I944;
    EBLK  * I945;
    EBLK  * I946;
    EBLK  * I947;
    EBLK  * I948;
    EBLK  * I949;
    EBLK  * I950;
    EBLK  * I951;
    EBLK  * I952;
    EBLK  * I953;
    EBLK  * I954;
    EBLK  * I955;
    EBLK  * I956;
    EBLK  * I957;
    MPS  * I958;
};
typedef void (* FP)(void *  , scalar   );
typedef void (* FP1)(void *  );
typedef void (* FPRAP)(void *  , vec32  *  , U   );
typedef U  (* FPU1)(void *  );
typedef void (* FPV)(void *  , UB  *  );
typedef void (* FPVU)(void *  , UB  *  , U   );
typedef void (* FPLSEL)(void *  , scalar   , U   );
typedef void (* FPLSELV)(void *  , vec32  *  , U   , U   );
typedef void (* FPFPV)(UB  *  , UB  *  , U   , U   , U   , U   , U   , UB  *  , U   );
typedef void (* FPRPV)(UB  *  , U   , U   , U   );
typedef void (* FPEVCDLSEL)(void *  , scalar   , U   , UB  *  );
typedef void (* FPEVCDLSELV)(void *  , vec32  *  , U   , U   , UB  *  );
typedef void (* FPNTYPE_L)(void *  , void *  , U   , U   , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_H)(void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_HPAP)(void *  , void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef struct _lqueue {
    EBLK  * I635;
    EBLK  * I959;
    int I960;
    struct _lqueue * I666;
} Queue;
typedef struct {
    EBLK  I962;
    U  I963;
    union {
        void * pHeap;
        Queue  * pList;
    } I610;
    Queue   I964[1];
} Qhdr;
extern UB   Xvalchg[];
extern UB   X4val[];
extern UB   X3val[];
extern UB   X2val[];
extern UB   XcvtstrTR[];
extern UB   Xcvtstr[];
extern UB   Xbuf[];
extern UB   Xbitnot[];
extern UB   Xwor[];
extern UB   Xwand[];
extern U   Xbitnot4val[];
extern UB   globalTable1Input[];
extern unsigned long long vcs_clocks;
extern UB   Xunion[];
extern U  fRTFrcRelCbk;
extern FP  txpFnPtr;
extern FP   rmaFunctionArray[];
extern FP   rmaFunctionRtlArray[];
extern FP   rmaFunctionLRArray[];
extern U  rmaFunctionCount;
extern U  rmaFunctionLRCount;
extern U  rmaFunctionLRDummyCount;
extern UP  rmaFunctionDummyEndPtr;
extern UB  dummyScalar;
extern UB  fScalarIsForced;
extern UB  fScalarIsReleased;
extern U  fNotimingchecks;
extern RP  * iparr;
extern FP1  * rmaPostAnySchedFnPtr;
extern FP1  * rmaPostAnySchedFnSamplePtr;
extern FP1  * rmaPostAnySchedVFnPtr;
extern FP1  * rmaPostAnySchedWFnPtr;
extern FP1  * rmaPostAnySchedEFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusNonCongruentFnPtr;
extern FP1  * rmaPostSchedUpdateEvTrigFnPtr;
extern FP1  * rmaSched0UpdateEvTrigFnPtr;
extern FP1  * rmaPostSchedRecoveryResetDbsFnPtr;
extern U  fGblDataOrTime0Prop;
extern UB   rmaEdgeStatusValArr[];
extern FP1  * propForceCbkSPostSchedCgFnPtr;
extern FP1  * propForceCbkMemoptSPostSchedCgFnPtr;
extern UB  * ptableGbl;
extern Qhdr  * lvlQueue;
extern U  mhdl_delta_count;
extern U  ignoreSchedForScanOpt;
extern U  fignoreSchedForDeadComboCloud;
extern int fZeroUser;
extern U  fEveBusPullVal;
extern U  fEveBusPullFlag;
extern EBLK  * peblkFutQ1Head;
extern EBLK  * peblkFutQ1Tail;
extern int gFLoopDectCodeEna;
extern U  fLoopReportRT;


extern void *mempcpy(void* s1, void* s2, unsigned n);
extern UB* rmaEvalDelays(UB* pcode, scalar val);
extern UB* rmaEvalDelaysV(UB* pcode, vec32* pval);
extern void rmaPopTransEvent(UB* pcode);
extern void rmaSetupFuncArray(UP* ra, U c, U w);
extern void rmaSetupRTLoopReportPtrs(UP* funcs, U cnt, U cntDummy, UP end);
extern void SinitHsimPats(void);
extern void VVrpDaicb(void* ip, U nIndex);
extern int SDaicb(void *ip, U nIndex);
extern void SDaicbForHsimNoFlagScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlagStrengthScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlag2(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimWithFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlagFrcRel(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimNoFlagFrcRel2(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void VcsHsimValueChangeCB(void* pRmaDaiCg, void* pValue, unsigned int valueFormat);
extern U isNonDesignNodeCallbackList(void* pRmaDaiCg);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void VVrpNonEventNonRegdScalarForHsimOptCbkMemopt(void* ip, U nIndex);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabFrcRel(U* mem, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimCbkMemOptNoFlagFrcRel(void* pDaiCb, unsigned char reason, int msb, int lsb, int ndx);
extern void hsimDispatchCbkMemOptForVcd(RP p, U val);
extern void* hsimGetCbkMemOptCallback(RP p);
extern void hsimDispatchCbkMemOptNoDynElabS(RP* p, U val, U isStrength);
extern void* hsimGetCbkPtrNoDynElab(RP p);
extern void hsimDispatchCbkMemOptDynElabS(U** pvcdarr, U** pcbkarr, U val, U isScalForced, U isScalReleased, U isStrength);
extern void hsimDispatchCbkMemOptNoDynElabVector(RP* /*RmaDaiOptCg* */p, void* pval, U /*RmaValueType*/ vt, U cbits);
extern void copyAndPropRootCbkCgS(RmaRootCbkCg* pRootCbk, scalar val);
extern void copyAndPropRootCbkCgV(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgW(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgE(RmaRootCbkCg* rootCbk, scalar* pval);
extern void dumpRootVcdCg(RmaRootVcdCg* pRootVcd, scalar val);
extern void Wsvvar_callback_non_dynamic1(RP* ptr, int);
extern void rmaExecEvSyncList(RP plist);
extern void Wsvvar_callback_virt_intf(RP* ptr);
extern void Wsvvar_callback_hsim_var(RP* ptr);
extern void checkAndConvertVec32To2State(vec32* value, vec32* svalue, U cbits, U* pforcedBits);
extern unsigned int fGblDataOrTime0Prop;
extern void SchedSemiLerMP1(UB* pmps, U partId);
extern void SchedSemiLerMPO(UB* pmpso, U partId);
extern void rmaDummyPropagate(void);
extern RP rmaTestCg(RP pcode, U vt, UB* value);
extern void hsUpdateModpathTimeStamp(UB* pmps);
extern void doMpd32One(UB* pmps);
extern void SchedSemiLerMP(UB* ppulse, U partId);
extern EBLK *peblkFutQ1Head;
extern EBLK *peblkFutQ1Tail;
extern void scheduleuna(UB *e, U t);
extern void scheduleuna_mp(EBLK *e, unsigned t);
extern void schedule(UB *e, U t);
extern void sched_hsopt(struct dummyq_struct * pQ, EBLK *e, U t);
extern void sched_millenium(struct dummyq_struct * pQ, void *e, U thigh, U t);
extern void schedule_1(EBLK *e);
extern void sched0(UB *e);
extern void sched0Raptor(UB *e);
extern void sched0lq(UB *e);
extern void sched0lqnc(EBLK *e);
extern void sched0una(UB *e);
extern void sched0una_th(struct dummyq_struct *pq, UB *e);
extern void hsopt_sched0u_th(struct dummyq_struct *pq, UB *e);
extern void scheduleuna_mp_th(struct dummyq_struct *pq, EBLK *e, unsigned t);
extern void schedal(UB *e);
extern void sched0_th(struct dummyq_struct * pQ, EBLK *e);
extern void sched0u(UB *e);
extern void sched0u_th(struct dummyq_struct *pq, UB *e);
extern void sched0_hsim_front_th(struct dummyq_struct * pQ, UB *e);
extern void sched0_hsim_frontlq_th(struct dummyq_struct * pQ, UB *e);
extern void sched0lq_th(struct dummyq_struct * pQ, UB *e);
extern void schedal_th(struct dummyq_struct * pQ, UB *e);
extern void scheduleuna_th(struct dummyq_struct * pQ, void *e, U t);
extern void schedule_th(struct dummyq_struct * pQ, UB *e, U t);
extern void schedule_1_th(struct dummyq_struct * pQ, EBLK *peblk);
extern void SetupLER_th(struct dummyq_struct * pQ, UB *e);
extern void SchedSemiLer_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXP_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXPFreeVar_th(struct dummyq_struct * pQ, EBLK *e);
extern U getVcdFlags(UB *ip);
extern void VVrpNonEventNonRegdScalarForHsimOpt(void* ip, U nIndex);
extern void VVrpNonEventNonRegdScalarForHsimOpt2(void* ip, U nIndex);
extern void SchedSemiLerTBReactiveRegion(struct eblk* peblk);
extern void SchedSemiLerTBReactiveRegion_th(struct eblk* peblk, U partId);
extern void SchedSemiLerTr(UB* peblk, U partId);
extern void SchedSemiLerNBA(UB* peblk, U partId);
extern void NBA_Semiler(void *ip, void *pNBS);
extern void sched0sd_hsim(UB* peblk);
extern void appendNtcEvent(UB* phdr, scalar s, U schedDelta);
extern void schedRetainHsim(MPS* pMPS, scalar sv, scalar pv);
extern void updateRetainHsim(MPS* pMPS,scalar sv, scalar pv);
extern void hsimRegisterEdge(void* sm,  scalar s);
extern U pvcsGetPartId();
extern void HsimPVCSPartIdCheck(U instNo);
extern void debug_func(U partId, struct dummyq_struct* pQ, EBLK* EblkLastEventx); 
extern struct dummyq_struct* pvcsGetQ(U thid);
extern EBLK* pvcsGetLastEventEblk(U thid);
extern void insertTransEvent(RmaTransEventHdr* phdr, scalar s, scalar pv,	scalar resval, U schedDelta, int re, UB* predd, U fpdd);
extern void insertNtcEventRF(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, U* delays);
extern U doTimingViolation(RmaTimeStamp ts,RP* pdata, U fskew, U limit, U floaded, U fcondopt);
extern void sched_gate_hsim(EBLK* peblk, unsigned t, RP* offset);
extern int getCurSchedRegion();
extern FP getRoutPtr(RP, U);
extern U rmaChangeCheckAndUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern void rmaUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaChangeCheckAndUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaLhsPartSelUpdateE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaUpdateWithForceSelectorE(scalar* pvalDst, scalar* pvalSrc, U cbits, U* pforceSelector);
extern void rmaUpdateWFromE(vec32* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaLhsPartSelWithChangeCheckE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaLhsPartSelWFromE(vec32* pvalDst, scalar* pvalSrc, U index,U width);
extern U rmaChangeCheckAndUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern U rmaLhsPartSelWithChangeCheckW(vec32* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern U rmaLhsPartSelWithChangeCheckEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelUpdateW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void rmaEvalWunionW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWorW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWandW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalUnionE(scalar* dst, scalar* src, U cbits, U count, RP ptable);
typedef U RmaCgFunctionType;
extern RmaIbfPcode* rmaEvalPartSelectsW(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsWToE(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsEToE(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus);
extern RmaIbfPcode* rmaEvalPartSelectsEToW(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern U rmaEvalBitPosEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U VcsForceVecVCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U/*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecVCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecWCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecWCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecECg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecCg(UB* pcode, UB* pvDst, U ibeginDst, U width, U /*RmaValueType*/ type,U fisRoot, UB* prhsDst, U frhs, U* pforcedbits);
extern U VcsDriveBitsAndDoChangeCheckV(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckW(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckE(scalar* pvSel, scalar* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern void cgvecDebug_Eblk(UB* pcode);
extern U rmaCmpW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void copyVec32ArrMask(vec32* pv1, vec32* pv2, U len, U* mask);
extern void* memcpy(void*, const void*, size_t);
extern int memcmp(const void*, const void*, size_t);
extern void propagateScanOptPathVal(EBLK *peblk);
extern UB* rmaProcessScanSwitches(UB* pcode, scalar val);
extern UB* rmaProcessScanSwitchesV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanoptDump(UB* pcode, scalar val);
extern UB* rmaProcessScanoptDumpV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanChainOptSeqPrims(UB* pcode, scalar val);
extern void rmaProcessPvcsCcn(UB* pcode, scalar val);
extern void rmaProcessPvcsCcnE(UB* pcode, scalar* val);
extern void rmaProcessPvcsCcnW(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnV(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnCompiledS(UB* pcode, U offset, scalar ibnval);
extern void rmaProcessPvcsCcnCompiledV(UB* pcode, U offset, vec32* pval);
extern void schedResetRecoveryDbs(U cedges, EBLK* peblkFirst);
extern UB* rmaEvalUnaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVOneFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVLargeFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalAndOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpV(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpV(UB* pcode, vec32* value);
extern UB* rmaEvalTernaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalTernaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalBinaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpS(UB* pcode, scalar val);
extern scalar rmaGetScalarFromWCg(vec32* pval, U index);
extern void rmaSetScalarInWCg(vec32* pval, U index, scalar s);
extern void rmaCountRaptorBits(void* pval, void* pvalPrev, U cbits, U vt);
extern void setHsimFunc(void* ip);
extern void unsetHsimFunc(void* ip);
extern UB* getEvcdStatusByFlagsE(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsV(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsS(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table);
extern UB* getSingleDrvEvcdStatusS(UB value, U fTBDriver);
extern UB* getSingleDrvEvcdStatusE(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getSingleDrvEvcdStatusV(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getEvcdStatusByDrvEvcdStatus(UB* pdrvevcdStatus, U cdrivers, UB* table, U cbits);
extern void evcdCallback(UP pcode, U cbits);
extern UB* getSavedEvcdStatus(void);
extern void saveEvcdStatus(UB*);
extern void mhdlMarkExport(void*, U);
extern void levelInsertQueue(int);
extern void VcsRciRtl(RP pcode);
extern int gFLoopDectCodeEna;
extern U fLoopReportRT;
extern void rtSched0LoopDectDumpProcess(void* e, void* rtn, void* PQ);
extern EBLK* loopReportInlinedSched0Wrapper(EBLK *peblk);
extern void loopReportSched0Wrapper(EBLK *peblk, unsigned int sfType, unsigned int fTH, struct dummyq_struct* pq);
extern void loopReportSchedSemiLerWrapper(EBLK *peblk, int sfType);
extern void CallGraphPushNodeAndAddToGraph(UP flatNode, UP instNum, U dummy);
extern void CallGraphPopNode(void);
extern RP elabGetIpTpl(U in);
extern U rmaEvalBitBothEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQXW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval01EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval0XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval10EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval1XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX1EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX0EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitPosEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitBothEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern void rmaScheduleNbaGate(RP pcode, scalar val);
extern void rmaEvaluateDynamicGateLoadsCg(RP p, scalar s);
extern void rmaEvaluateFusedWithDynamicGateLoadsCg(RP p, scalar s);
extern U rmaIsS2State(scalar s);
extern U rmaIsV2State(vec32* pval, U cbits);
extern U rmaIsW2State(vec32* pval, U cbits);
extern U rmaIsE2State(scalar* pval, U cbits);
extern void rmaUpdateRecordFor2State(HsimNodeRecord* record, U f2state);
typedef void (*FuncPtr)();
static inline U asm_bsf (U in)
{
#if defined(linux)
    U out;
    asm ("movl %1, %%eax; bsf %%eax, %%eax; movl %%eax, %0;"
        :"=r"(out)
        :"r"(in)
        :"%eax"
        );
    return out;
#else
    return 0;
#endif
}


#ifdef __cplusplus
extern "C" {
#endif
void  hsM_0_0(UB  * pcode, scalar  val);
void  hsM_0_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_0_2(UB  * pcode);
void  hsM_0_10(UB  * pcode, scalar  val);
void  hsM_1_0(UB  * pcode, scalar  val);
void  hsM_1_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_1_2(UB  * pcode);
void  hsM_2_0(UB  * pcode, scalar  val);
void  hsM_2_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_2_2(UB  * pcode);
void  hsM_3_0(UB  * pcode, scalar  val);
void  hsM_3_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_3_2(UB  * pcode);
void  hsM_4_0(UB  * pcode, scalar  val);
void  hsM_4_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_4_2(UB  * pcode);
void  hsM_5_0(UB  * pcode, scalar  val);
void  hsM_5_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_5_2(UB  * pcode);
void  hsM_9_0(UB  * pcode, scalar  val);
void  hsM_9_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_9_2(UB  * pcode);
void  hsM_11_0(UB  * pcode, scalar  val);
void  hsM_11_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_11_2(UB  * pcode);
void  hsM_12_0(UB  * pcode, scalar  val);
void  hsM_12_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_12_2(UB  * pcode);
void  hsM_13_0(UB  * pcode, scalar  val);
void  hsM_13_1(UB  * pcode, scalar  val, U  I985, scalar  * I984);
void  hsM_13_2(UB  * pcode);
void  hsM_13_5(UB  * pcode, UB  val);
void  hsG_0(struct dummyq_struct * I971, EBLK  * I972, U  I702);
#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
  }
#endif
#endif /*__DO_RMAHDR_*/

