kstmApp/src/O.linux-arm/kstm_registerRecordDeviceDriver.cpp
changeset 4 f7598b2df637
equal deleted inserted replaced
3:ec018606c207 4:f7598b2df637
       
     1 /* THIS IS A GENERATED FILE. DO NOT EDIT! */
       
     2 /* Generated from ../O.Common/kstm.dbd */
       
     3 
       
     4 #include <string.h>
       
     5 
       
     6 #include "epicsStdlib.h"
       
     7 #include "iocsh.h"
       
     8 #include "iocshRegisterCommon.h"
       
     9 #include "registryCommon.h"
       
    10 
       
    11 extern "C" {
       
    12 
       
    13 epicsShareExtern rset *pvar_rset_aSubRSET, *pvar_rset_aaiRSET,
       
    14     *pvar_rset_aaoRSET, *pvar_rset_acalcoutRSET, *pvar_rset_aiRSET,
       
    15     *pvar_rset_aoRSET, *pvar_rset_asynRSET, *pvar_rset_biRSET,
       
    16     *pvar_rset_boRSET, *pvar_rset_calcRSET, *pvar_rset_calcoutRSET,
       
    17     *pvar_rset_compressRSET, *pvar_rset_dfanoutRSET, *pvar_rset_eventRSET,
       
    18     *pvar_rset_fanoutRSET, *pvar_rset_histogramRSET,
       
    19     *pvar_rset_longinRSET, *pvar_rset_longoutRSET, *pvar_rset_lsiRSET,
       
    20     *pvar_rset_lsoRSET, *pvar_rset_mbbiRSET, *pvar_rset_mbbiDirectRSET,
       
    21     *pvar_rset_mbboRSET, *pvar_rset_mbboDirectRSET,
       
    22     *pvar_rset_permissiveRSET, *pvar_rset_printfRSET,
       
    23     *pvar_rset_scalcoutRSET, *pvar_rset_selRSET, *pvar_rset_seqRSET,
       
    24     *pvar_rset_sseqRSET, *pvar_rset_stateRSET, *pvar_rset_stringinRSET,
       
    25     *pvar_rset_stringoutRSET, *pvar_rset_subRSET, *pvar_rset_subArrayRSET,
       
    26     *pvar_rset_swaitRSET, *pvar_rset_transformRSET,
       
    27     *pvar_rset_waveformRSET;
       
    28 
       
    29 typedef int (*rso_func)(dbRecordType *pdbRecordType);
       
    30 epicsShareExtern rso_func pvar_func_aSubRecordSizeOffset,
       
    31     pvar_func_aaiRecordSizeOffset, pvar_func_aaoRecordSizeOffset,
       
    32     pvar_func_acalcoutRecordSizeOffset, pvar_func_aiRecordSizeOffset,
       
    33     pvar_func_aoRecordSizeOffset, pvar_func_asynRecordSizeOffset,
       
    34     pvar_func_biRecordSizeOffset, pvar_func_boRecordSizeOffset,
       
    35     pvar_func_calcRecordSizeOffset, pvar_func_calcoutRecordSizeOffset,
       
    36     pvar_func_compressRecordSizeOffset, pvar_func_dfanoutRecordSizeOffset,
       
    37     pvar_func_eventRecordSizeOffset, pvar_func_fanoutRecordSizeOffset,
       
    38     pvar_func_histogramRecordSizeOffset, pvar_func_longinRecordSizeOffset,
       
    39     pvar_func_longoutRecordSizeOffset, pvar_func_lsiRecordSizeOffset,
       
    40     pvar_func_lsoRecordSizeOffset, pvar_func_mbbiRecordSizeOffset,
       
    41     pvar_func_mbbiDirectRecordSizeOffset, pvar_func_mbboRecordSizeOffset,
       
    42     pvar_func_mbboDirectRecordSizeOffset,
       
    43     pvar_func_permissiveRecordSizeOffset,
       
    44     pvar_func_printfRecordSizeOffset, pvar_func_scalcoutRecordSizeOffset,
       
    45     pvar_func_selRecordSizeOffset, pvar_func_seqRecordSizeOffset,
       
    46     pvar_func_sseqRecordSizeOffset, pvar_func_stateRecordSizeOffset,
       
    47     pvar_func_stringinRecordSizeOffset,
       
    48     pvar_func_stringoutRecordSizeOffset, pvar_func_subRecordSizeOffset,
       
    49     pvar_func_subArrayRecordSizeOffset, pvar_func_swaitRecordSizeOffset,
       
    50     pvar_func_transformRecordSizeOffset,
       
    51     pvar_func_waveformRecordSizeOffset;
       
    52 
       
    53 static const char * const recordTypeNames[] = {
       
    54     "aSub", "aai", "aao", "acalcout", "ai", "ao", "asyn", "bi", "bo",
       
    55     "calc", "calcout", "compress", "dfanout", "event", "fanout",
       
    56     "histogram", "longin", "longout", "lsi", "lso", "mbbi", "mbbiDirect",
       
    57     "mbbo", "mbboDirect", "permissive", "printf", "scalcout", "sel",
       
    58     "seq", "sseq", "state", "stringin", "stringout", "sub", "subArray",
       
    59     "swait", "transform", "waveform"
       
    60 };
       
    61 
       
    62 static const recordTypeLocation rtl[] = {
       
    63     {pvar_rset_aSubRSET, pvar_func_aSubRecordSizeOffset},
       
    64     {pvar_rset_aaiRSET, pvar_func_aaiRecordSizeOffset},
       
    65     {pvar_rset_aaoRSET, pvar_func_aaoRecordSizeOffset},
       
    66     {pvar_rset_acalcoutRSET, pvar_func_acalcoutRecordSizeOffset},
       
    67     {pvar_rset_aiRSET, pvar_func_aiRecordSizeOffset},
       
    68     {pvar_rset_aoRSET, pvar_func_aoRecordSizeOffset},
       
    69     {pvar_rset_asynRSET, pvar_func_asynRecordSizeOffset},
       
    70     {pvar_rset_biRSET, pvar_func_biRecordSizeOffset},
       
    71     {pvar_rset_boRSET, pvar_func_boRecordSizeOffset},
       
    72     {pvar_rset_calcRSET, pvar_func_calcRecordSizeOffset},
       
    73     {pvar_rset_calcoutRSET, pvar_func_calcoutRecordSizeOffset},
       
    74     {pvar_rset_compressRSET, pvar_func_compressRecordSizeOffset},
       
    75     {pvar_rset_dfanoutRSET, pvar_func_dfanoutRecordSizeOffset},
       
    76     {pvar_rset_eventRSET, pvar_func_eventRecordSizeOffset},
       
    77     {pvar_rset_fanoutRSET, pvar_func_fanoutRecordSizeOffset},
       
    78     {pvar_rset_histogramRSET, pvar_func_histogramRecordSizeOffset},
       
    79     {pvar_rset_longinRSET, pvar_func_longinRecordSizeOffset},
       
    80     {pvar_rset_longoutRSET, pvar_func_longoutRecordSizeOffset},
       
    81     {pvar_rset_lsiRSET, pvar_func_lsiRecordSizeOffset},
       
    82     {pvar_rset_lsoRSET, pvar_func_lsoRecordSizeOffset},
       
    83     {pvar_rset_mbbiRSET, pvar_func_mbbiRecordSizeOffset},
       
    84     {pvar_rset_mbbiDirectRSET, pvar_func_mbbiDirectRecordSizeOffset},
       
    85     {pvar_rset_mbboRSET, pvar_func_mbboRecordSizeOffset},
       
    86     {pvar_rset_mbboDirectRSET, pvar_func_mbboDirectRecordSizeOffset},
       
    87     {pvar_rset_permissiveRSET, pvar_func_permissiveRecordSizeOffset},
       
    88     {pvar_rset_printfRSET, pvar_func_printfRecordSizeOffset},
       
    89     {pvar_rset_scalcoutRSET, pvar_func_scalcoutRecordSizeOffset},
       
    90     {pvar_rset_selRSET, pvar_func_selRecordSizeOffset},
       
    91     {pvar_rset_seqRSET, pvar_func_seqRecordSizeOffset},
       
    92     {pvar_rset_sseqRSET, pvar_func_sseqRecordSizeOffset},
       
    93     {pvar_rset_stateRSET, pvar_func_stateRecordSizeOffset},
       
    94     {pvar_rset_stringinRSET, pvar_func_stringinRecordSizeOffset},
       
    95     {pvar_rset_stringoutRSET, pvar_func_stringoutRecordSizeOffset},
       
    96     {pvar_rset_subRSET, pvar_func_subRecordSizeOffset},
       
    97     {pvar_rset_subArrayRSET, pvar_func_subArrayRecordSizeOffset},
       
    98     {pvar_rset_swaitRSET, pvar_func_swaitRecordSizeOffset},
       
    99     {pvar_rset_transformRSET, pvar_func_transformRecordSizeOffset},
       
   100     {pvar_rset_waveformRSET, pvar_func_waveformRecordSizeOffset}
       
   101 };
       
   102 
       
   103 epicsShareExtern dset *pvar_dset_devAaiSoft, *pvar_dset_devaaiStream,
       
   104     *pvar_dset_devAaoSoft, *pvar_dset_devaaoStream,
       
   105     *pvar_dset_devaCalcoutSoft, *pvar_dset_devAiSoft,
       
   106     *pvar_dset_devAiSoftRaw, *pvar_dset_devAiSoftCallback,
       
   107     *pvar_dset_devTimestampAI, *pvar_dset_devAiGeneralTime,
       
   108     *pvar_dset_asynAiInt32, *pvar_dset_asynAiInt32Average,
       
   109     *pvar_dset_asynAiFloat64, *pvar_dset_asynAiFloat64Average,
       
   110     *pvar_dset_devaiStream, *pvar_dset_adcPiAi, *pvar_dset_devAoSoft,
       
   111     *pvar_dset_devAoSoftRaw, *pvar_dset_devAoSoftCallback,
       
   112     *pvar_dset_asynAoInt32, *pvar_dset_asynAoFloat64,
       
   113     *pvar_dset_devaoStream, *pvar_dset_asynRecordDevice,
       
   114     *pvar_dset_devBiSoft, *pvar_dset_devBiSoftRaw,
       
   115     *pvar_dset_devBiSoftCallback, *pvar_dset_devBiDbState,
       
   116     *pvar_dset_asynBiInt32, *pvar_dset_asynBiUInt32Digital,
       
   117     *pvar_dset_devbiStream, *pvar_dset_devBoSoft, *pvar_dset_devBoSoftRaw,
       
   118     *pvar_dset_devBoSoftCallback, *pvar_dset_devBoGeneralTime,
       
   119     *pvar_dset_devBoDbState, *pvar_dset_asynBoInt32,
       
   120     *pvar_dset_asynBoUInt32Digital, *pvar_dset_devboStream,
       
   121     *pvar_dset_devCalcoutSoft, *pvar_dset_devCalcoutSoftCallback,
       
   122     *pvar_dset_devcalcoutStream, *pvar_dset_devEventSoft,
       
   123     *pvar_dset_devHistogramSoft, *pvar_dset_devLiSoft,
       
   124     *pvar_dset_devLiSoftCallback, *pvar_dset_devLiGeneralTime,
       
   125     *pvar_dset_asynLiInt32, *pvar_dset_asynLiUInt32Digital,
       
   126     *pvar_dset_devlonginStream, *pvar_dset_devLoSoft,
       
   127     *pvar_dset_devLoSoftCallback, *pvar_dset_asynLoInt32,
       
   128     *pvar_dset_asynLoUInt32Digital, *pvar_dset_devlongoutStream,
       
   129     *pvar_dset_devLsiSoft, *pvar_dset_devLsoSoft,
       
   130     *pvar_dset_devLsoSoftCallback, *pvar_dset_devLsoStdio,
       
   131     *pvar_dset_devMbbiSoft, *pvar_dset_devMbbiSoftRaw,
       
   132     *pvar_dset_devMbbiSoftCallback, *pvar_dset_asynMbbiInt32,
       
   133     *pvar_dset_asynMbbiUInt32Digital, *pvar_dset_devmbbiStream,
       
   134     *pvar_dset_devMbbiDirectSoft, *pvar_dset_devMbbiDirectSoftRaw,
       
   135     *pvar_dset_devMbbiDirectSoftCallback,
       
   136     *pvar_dset_asynMbbiDirectUInt32Digital,
       
   137     *pvar_dset_devmbbiDirectStream, *pvar_dset_devMbboSoft,
       
   138     *pvar_dset_devMbboSoftRaw, *pvar_dset_devMbboSoftCallback,
       
   139     *pvar_dset_asynMbboInt32, *pvar_dset_asynMbboUInt32Digital,
       
   140     *pvar_dset_devmbboStream, *pvar_dset_devMbboDirectSoft,
       
   141     *pvar_dset_devMbboDirectSoftRaw, *pvar_dset_devMbboDirectSoftCallback,
       
   142     *pvar_dset_asynMbboDirectUInt32Digital,
       
   143     *pvar_dset_devmbboDirectStream, *pvar_dset_devPrintfSoft,
       
   144     *pvar_dset_devPrintfSoftCallback, *pvar_dset_devPrintfStdio,
       
   145     *pvar_dset_devsCalcoutSoft, *pvar_dset_devSiSoft,
       
   146     *pvar_dset_devSiSoftCallback, *pvar_dset_devTimestampSI,
       
   147     *pvar_dset_devSiGeneralTime, *pvar_dset_asynSiOctetCmdResponse,
       
   148     *pvar_dset_asynSiOctetWriteRead, *pvar_dset_asynSiOctetRead,
       
   149     *pvar_dset_devstringinStream, *pvar_dset_devSoSoft,
       
   150     *pvar_dset_devSoSoftCallback, *pvar_dset_devSoStdio,
       
   151     *pvar_dset_asynSoOctetWrite, *pvar_dset_devstringoutStream,
       
   152     *pvar_dset_devSASoft, *pvar_dset_devSWaitIoEvent,
       
   153     *pvar_dset_devWfSoft, *pvar_dset_asynWfOctetCmdResponse,
       
   154     *pvar_dset_asynWfOctetWriteRead, *pvar_dset_asynWfOctetRead,
       
   155     *pvar_dset_asynWfOctetWrite, *pvar_dset_asynInt8ArrayWfIn,
       
   156     *pvar_dset_asynInt8ArrayWfOut, *pvar_dset_asynInt16ArrayWfIn,
       
   157     *pvar_dset_asynInt16ArrayWfOut, *pvar_dset_asynInt32ArrayWfIn,
       
   158     *pvar_dset_asynInt32ArrayWfOut, *pvar_dset_asynInt32TimeSeries,
       
   159     *pvar_dset_asynFloat32ArrayWfIn, *pvar_dset_asynFloat32ArrayWfOut,
       
   160     *pvar_dset_asynFloat64ArrayWfIn, *pvar_dset_asynFloat64ArrayWfOut,
       
   161     *pvar_dset_asynFloat64TimeSeries, *pvar_dset_devwaveformStream;
       
   162 
       
   163 static const char * const deviceSupportNames[] = {
       
   164     "devAaiSoft", "devaaiStream", "devAaoSoft", "devaaoStream",
       
   165     "devaCalcoutSoft", "devAiSoft", "devAiSoftRaw", "devAiSoftCallback",
       
   166     "devTimestampAI", "devAiGeneralTime", "asynAiInt32",
       
   167     "asynAiInt32Average", "asynAiFloat64", "asynAiFloat64Average",
       
   168     "devaiStream", "adcPiAi", "devAoSoft", "devAoSoftRaw",
       
   169     "devAoSoftCallback", "asynAoInt32", "asynAoFloat64", "devaoStream",
       
   170     "asynRecordDevice", "devBiSoft", "devBiSoftRaw", "devBiSoftCallback",
       
   171     "devBiDbState", "asynBiInt32", "asynBiUInt32Digital", "devbiStream",
       
   172     "devBoSoft", "devBoSoftRaw", "devBoSoftCallback", "devBoGeneralTime",
       
   173     "devBoDbState", "asynBoInt32", "asynBoUInt32Digital", "devboStream",
       
   174     "devCalcoutSoft", "devCalcoutSoftCallback", "devcalcoutStream",
       
   175     "devEventSoft", "devHistogramSoft", "devLiSoft", "devLiSoftCallback",
       
   176     "devLiGeneralTime", "asynLiInt32", "asynLiUInt32Digital",
       
   177     "devlonginStream", "devLoSoft", "devLoSoftCallback", "asynLoInt32",
       
   178     "asynLoUInt32Digital", "devlongoutStream", "devLsiSoft", "devLsoSoft",
       
   179     "devLsoSoftCallback", "devLsoStdio", "devMbbiSoft", "devMbbiSoftRaw",
       
   180     "devMbbiSoftCallback", "asynMbbiInt32", "asynMbbiUInt32Digital",
       
   181     "devmbbiStream", "devMbbiDirectSoft", "devMbbiDirectSoftRaw",
       
   182     "devMbbiDirectSoftCallback", "asynMbbiDirectUInt32Digital",
       
   183     "devmbbiDirectStream", "devMbboSoft", "devMbboSoftRaw",
       
   184     "devMbboSoftCallback", "asynMbboInt32", "asynMbboUInt32Digital",
       
   185     "devmbboStream", "devMbboDirectSoft", "devMbboDirectSoftRaw",
       
   186     "devMbboDirectSoftCallback", "asynMbboDirectUInt32Digital",
       
   187     "devmbboDirectStream", "devPrintfSoft", "devPrintfSoftCallback",
       
   188     "devPrintfStdio", "devsCalcoutSoft", "devSiSoft", "devSiSoftCallback",
       
   189     "devTimestampSI", "devSiGeneralTime", "asynSiOctetCmdResponse",
       
   190     "asynSiOctetWriteRead", "asynSiOctetRead", "devstringinStream",
       
   191     "devSoSoft", "devSoSoftCallback", "devSoStdio", "asynSoOctetWrite",
       
   192     "devstringoutStream", "devSASoft", "devSWaitIoEvent", "devWfSoft",
       
   193     "asynWfOctetCmdResponse", "asynWfOctetWriteRead", "asynWfOctetRead",
       
   194     "asynWfOctetWrite", "asynInt8ArrayWfIn", "asynInt8ArrayWfOut",
       
   195     "asynInt16ArrayWfIn", "asynInt16ArrayWfOut", "asynInt32ArrayWfIn",
       
   196     "asynInt32ArrayWfOut", "asynInt32TimeSeries", "asynFloat32ArrayWfIn",
       
   197     "asynFloat32ArrayWfOut", "asynFloat64ArrayWfIn",
       
   198     "asynFloat64ArrayWfOut", "asynFloat64TimeSeries", "devwaveformStream"
       
   199 };
       
   200 
       
   201 static const dset * const devsl[] = {
       
   202     pvar_dset_devAaiSoft, pvar_dset_devaaiStream, pvar_dset_devAaoSoft,
       
   203     pvar_dset_devaaoStream, pvar_dset_devaCalcoutSoft,
       
   204     pvar_dset_devAiSoft, pvar_dset_devAiSoftRaw,
       
   205     pvar_dset_devAiSoftCallback, pvar_dset_devTimestampAI,
       
   206     pvar_dset_devAiGeneralTime, pvar_dset_asynAiInt32,
       
   207     pvar_dset_asynAiInt32Average, pvar_dset_asynAiFloat64,
       
   208     pvar_dset_asynAiFloat64Average, pvar_dset_devaiStream,
       
   209     pvar_dset_adcPiAi, pvar_dset_devAoSoft, pvar_dset_devAoSoftRaw,
       
   210     pvar_dset_devAoSoftCallback, pvar_dset_asynAoInt32,
       
   211     pvar_dset_asynAoFloat64, pvar_dset_devaoStream,
       
   212     pvar_dset_asynRecordDevice, pvar_dset_devBiSoft,
       
   213     pvar_dset_devBiSoftRaw, pvar_dset_devBiSoftCallback,
       
   214     pvar_dset_devBiDbState, pvar_dset_asynBiInt32,
       
   215     pvar_dset_asynBiUInt32Digital, pvar_dset_devbiStream,
       
   216     pvar_dset_devBoSoft, pvar_dset_devBoSoftRaw,
       
   217     pvar_dset_devBoSoftCallback, pvar_dset_devBoGeneralTime,
       
   218     pvar_dset_devBoDbState, pvar_dset_asynBoInt32,
       
   219     pvar_dset_asynBoUInt32Digital, pvar_dset_devboStream,
       
   220     pvar_dset_devCalcoutSoft, pvar_dset_devCalcoutSoftCallback,
       
   221     pvar_dset_devcalcoutStream, pvar_dset_devEventSoft,
       
   222     pvar_dset_devHistogramSoft, pvar_dset_devLiSoft,
       
   223     pvar_dset_devLiSoftCallback, pvar_dset_devLiGeneralTime,
       
   224     pvar_dset_asynLiInt32, pvar_dset_asynLiUInt32Digital,
       
   225     pvar_dset_devlonginStream, pvar_dset_devLoSoft,
       
   226     pvar_dset_devLoSoftCallback, pvar_dset_asynLoInt32,
       
   227     pvar_dset_asynLoUInt32Digital, pvar_dset_devlongoutStream,
       
   228     pvar_dset_devLsiSoft, pvar_dset_devLsoSoft,
       
   229     pvar_dset_devLsoSoftCallback, pvar_dset_devLsoStdio,
       
   230     pvar_dset_devMbbiSoft, pvar_dset_devMbbiSoftRaw,
       
   231     pvar_dset_devMbbiSoftCallback, pvar_dset_asynMbbiInt32,
       
   232     pvar_dset_asynMbbiUInt32Digital, pvar_dset_devmbbiStream,
       
   233     pvar_dset_devMbbiDirectSoft, pvar_dset_devMbbiDirectSoftRaw,
       
   234     pvar_dset_devMbbiDirectSoftCallback,
       
   235     pvar_dset_asynMbbiDirectUInt32Digital, pvar_dset_devmbbiDirectStream,
       
   236     pvar_dset_devMbboSoft, pvar_dset_devMbboSoftRaw,
       
   237     pvar_dset_devMbboSoftCallback, pvar_dset_asynMbboInt32,
       
   238     pvar_dset_asynMbboUInt32Digital, pvar_dset_devmbboStream,
       
   239     pvar_dset_devMbboDirectSoft, pvar_dset_devMbboDirectSoftRaw,
       
   240     pvar_dset_devMbboDirectSoftCallback,
       
   241     pvar_dset_asynMbboDirectUInt32Digital, pvar_dset_devmbboDirectStream,
       
   242     pvar_dset_devPrintfSoft, pvar_dset_devPrintfSoftCallback,
       
   243     pvar_dset_devPrintfStdio, pvar_dset_devsCalcoutSoft,
       
   244     pvar_dset_devSiSoft, pvar_dset_devSiSoftCallback,
       
   245     pvar_dset_devTimestampSI, pvar_dset_devSiGeneralTime,
       
   246     pvar_dset_asynSiOctetCmdResponse, pvar_dset_asynSiOctetWriteRead,
       
   247     pvar_dset_asynSiOctetRead, pvar_dset_devstringinStream,
       
   248     pvar_dset_devSoSoft, pvar_dset_devSoSoftCallback,
       
   249     pvar_dset_devSoStdio, pvar_dset_asynSoOctetWrite,
       
   250     pvar_dset_devstringoutStream, pvar_dset_devSASoft,
       
   251     pvar_dset_devSWaitIoEvent, pvar_dset_devWfSoft,
       
   252     pvar_dset_asynWfOctetCmdResponse, pvar_dset_asynWfOctetWriteRead,
       
   253     pvar_dset_asynWfOctetRead, pvar_dset_asynWfOctetWrite,
       
   254     pvar_dset_asynInt8ArrayWfIn, pvar_dset_asynInt8ArrayWfOut,
       
   255     pvar_dset_asynInt16ArrayWfIn, pvar_dset_asynInt16ArrayWfOut,
       
   256     pvar_dset_asynInt32ArrayWfIn, pvar_dset_asynInt32ArrayWfOut,
       
   257     pvar_dset_asynInt32TimeSeries, pvar_dset_asynFloat32ArrayWfIn,
       
   258     pvar_dset_asynFloat32ArrayWfOut, pvar_dset_asynFloat64ArrayWfIn,
       
   259     pvar_dset_asynFloat64ArrayWfOut, pvar_dset_asynFloat64TimeSeries,
       
   260     pvar_dset_devwaveformStream
       
   261 };
       
   262 
       
   263 epicsShareExtern drvet *pvar_drvet_adcPi, *pvar_drvet_drvAsyn,
       
   264     *pvar_drvet_stream;
       
   265 
       
   266 static const char *driverSupportNames[] = {
       
   267     "adcPi", "drvAsyn", "stream"};
       
   268 
       
   269 static struct drvet *drvsl[] = {
       
   270     pvar_drvet_adcPi,
       
   271     pvar_drvet_drvAsyn,
       
   272     pvar_drvet_stream};
       
   273 
       
   274 typedef void (*reg_func)(void);
       
   275 epicsShareExtern reg_func pvar_func_adcPiRegister,
       
   276     pvar_func_arrInitialize, pvar_func_arrayTestRegister, pvar_func_asSub,
       
   277     pvar_func_asynInterposeEosRegister,
       
   278     pvar_func_asynInterposeFlushRegister, pvar_func_asynRegister,
       
   279     pvar_func_dbndInitialize, pvar_func_drvAsynIPPortRegisterCommands,
       
   280     pvar_func_drvAsynIPServerPortRegisterCommands,
       
   281     pvar_func_editSseqRegistrar, pvar_func_interpRegister,
       
   282     pvar_func_streamRegistrar, pvar_func_subAveRegister,
       
   283     pvar_func_syncInitialize, pvar_func_tsInitialize,
       
   284     pvar_func_register_func_aSubReadDHTInit,
       
   285     pvar_func_register_func_aSubReadDHTProcess;
       
   286 
       
   287 epicsShareExtern int * const pvar_int_aCalcAsyncThreshold;
       
   288 epicsShareExtern int * const pvar_int_aCalcLoopMax;
       
   289 epicsShareExtern int * const pvar_int_aCalcPerformDebug;
       
   290 epicsShareExtern int * const pvar_int_aCalcPostfixDebug;
       
   291 epicsShareExtern int * const pvar_int_aCalcoutRecordDebug;
       
   292 epicsShareExtern int * const pvar_int_aSubReadDHTDebug;
       
   293 epicsShareExtern int * const pvar_int_adcPiDebug;
       
   294 epicsShareExtern int * const pvar_int_arrayTestDebug;
       
   295 epicsShareExtern int * const pvar_int_asCaDebug;
       
   296 epicsShareExtern int * const pvar_int_atExitDebug;
       
   297 epicsShareExtern double * const pvar_double_boHIGHlimit;
       
   298 epicsShareExtern int * const pvar_int_boHIGHprecision;
       
   299 epicsShareExtern double * const pvar_double_calcoutODLYlimit;
       
   300 epicsShareExtern int * const pvar_int_calcoutODLYprecision;
       
   301 epicsShareExtern int * const pvar_int_callbackParallelThreadsDefault;
       
   302 epicsShareExtern int * const pvar_int_dbBptNotMonotonic;
       
   303 epicsShareExtern int * const pvar_int_dbRecordsOnceOnly;
       
   304 epicsShareExtern int * const pvar_int_dbTemplateMaxVars;
       
   305 epicsShareExtern int * const pvar_int_debugSubAve;
       
   306 epicsShareExtern int * const pvar_int_devaCalcoutSoftDebug;
       
   307 epicsShareExtern int * const pvar_int_devsCalcoutSoftDebug;
       
   308 epicsShareExtern int * const pvar_int_histogramSDELprecision;
       
   309 epicsShareExtern int * const pvar_int_interpDebug;
       
   310 epicsShareExtern int * const pvar_int_sCalcLoopMax;
       
   311 epicsShareExtern int * const pvar_int_sCalcPerformDebug;
       
   312 epicsShareExtern int * const pvar_int_sCalcPostfixDebug;
       
   313 epicsShareExtern int * const pvar_int_sCalcStackHW;
       
   314 epicsShareExtern int * const pvar_int_sCalcStackLW;
       
   315 epicsShareExtern int * const pvar_int_sCalcoutRecordDebug;
       
   316 epicsShareExtern double * const pvar_double_seqDLYlimit;
       
   317 epicsShareExtern int * const pvar_int_seqDLYprecision;
       
   318 epicsShareExtern int * const pvar_int_sseqRecDebug;
       
   319 epicsShareExtern int * const pvar_int_streamDebug;
       
   320 epicsShareExtern int * const pvar_int_swaitRecordDebug;
       
   321 epicsShareExtern int * const pvar_int_transformRecordDebug;
       
   322 
       
   323 static struct iocshVarDef vardefs[] = {
       
   324     {"aCalcAsyncThreshold", iocshArgInt, pvar_int_aCalcAsyncThreshold},
       
   325     {"aCalcLoopMax", iocshArgInt, pvar_int_aCalcLoopMax},
       
   326     {"aCalcPerformDebug", iocshArgInt, pvar_int_aCalcPerformDebug},
       
   327     {"aCalcPostfixDebug", iocshArgInt, pvar_int_aCalcPostfixDebug},
       
   328     {"aCalcoutRecordDebug", iocshArgInt, pvar_int_aCalcoutRecordDebug},
       
   329     {"aSubReadDHTDebug", iocshArgInt, pvar_int_aSubReadDHTDebug},
       
   330     {"adcPiDebug", iocshArgInt, pvar_int_adcPiDebug},
       
   331     {"arrayTestDebug", iocshArgInt, pvar_int_arrayTestDebug},
       
   332     {"asCaDebug", iocshArgInt, pvar_int_asCaDebug},
       
   333     {"atExitDebug", iocshArgInt, pvar_int_atExitDebug},
       
   334     {"boHIGHlimit", iocshArgDouble, pvar_double_boHIGHlimit},
       
   335     {"boHIGHprecision", iocshArgInt, pvar_int_boHIGHprecision},
       
   336     {"calcoutODLYlimit", iocshArgDouble, pvar_double_calcoutODLYlimit},
       
   337     {"calcoutODLYprecision", iocshArgInt, pvar_int_calcoutODLYprecision},
       
   338     {"callbackParallelThreadsDefault", iocshArgInt, pvar_int_callbackParallelThreadsDefault},
       
   339     {"dbBptNotMonotonic", iocshArgInt, pvar_int_dbBptNotMonotonic},
       
   340     {"dbRecordsOnceOnly", iocshArgInt, pvar_int_dbRecordsOnceOnly},
       
   341     {"dbTemplateMaxVars", iocshArgInt, pvar_int_dbTemplateMaxVars},
       
   342     {"debugSubAve", iocshArgInt, pvar_int_debugSubAve},
       
   343     {"devaCalcoutSoftDebug", iocshArgInt, pvar_int_devaCalcoutSoftDebug},
       
   344     {"devsCalcoutSoftDebug", iocshArgInt, pvar_int_devsCalcoutSoftDebug},
       
   345     {"histogramSDELprecision", iocshArgInt, pvar_int_histogramSDELprecision},
       
   346     {"interpDebug", iocshArgInt, pvar_int_interpDebug},
       
   347     {"sCalcLoopMax", iocshArgInt, pvar_int_sCalcLoopMax},
       
   348     {"sCalcPerformDebug", iocshArgInt, pvar_int_sCalcPerformDebug},
       
   349     {"sCalcPostfixDebug", iocshArgInt, pvar_int_sCalcPostfixDebug},
       
   350     {"sCalcStackHW", iocshArgInt, pvar_int_sCalcStackHW},
       
   351     {"sCalcStackLW", iocshArgInt, pvar_int_sCalcStackLW},
       
   352     {"sCalcoutRecordDebug", iocshArgInt, pvar_int_sCalcoutRecordDebug},
       
   353     {"seqDLYlimit", iocshArgDouble, pvar_double_seqDLYlimit},
       
   354     {"seqDLYprecision", iocshArgInt, pvar_int_seqDLYprecision},
       
   355     {"sseqRecDebug", iocshArgInt, pvar_int_sseqRecDebug},
       
   356     {"streamDebug", iocshArgInt, pvar_int_streamDebug},
       
   357     {"swaitRecordDebug", iocshArgInt, pvar_int_swaitRecordDebug},
       
   358     {"transformRecordDebug", iocshArgInt, pvar_int_transformRecordDebug},
       
   359     {NULL, iocshArgInt, NULL}
       
   360 };
       
   361 
       
   362 int kstm_registerRecordDeviceDriver(DBBASE *pbase)
       
   363 {
       
   364     static int executed = 0;
       
   365     const char *bldTop = "/home/epics/vierkstm";
       
   366     const char *envTop = getenv("TOP");
       
   367 
       
   368     if (envTop && strcmp(envTop, bldTop)) {
       
   369         printf("Warning: IOC is booting with TOP = \"%s\"\n"
       
   370                "          but was built with TOP = \"%s\"\n",
       
   371                envTop, bldTop);
       
   372     }
       
   373 
       
   374     if (!pbase) {
       
   375         printf("pdbbase is NULL; you must load a DBD file first.\n");
       
   376         return -1;
       
   377     }
       
   378 
       
   379     if (executed) {
       
   380         printf("Warning: Registration already done.\n");
       
   381     }
       
   382     executed = 1;
       
   383 
       
   384     registerRecordTypes(pbase, NELEMENTS(rtl), recordTypeNames, rtl);
       
   385     registerDevices(pbase, NELEMENTS(devsl), deviceSupportNames, devsl);
       
   386     registerDrivers(pbase, NELEMENTS(drvsl), driverSupportNames, drvsl);
       
   387     pvar_func_adcPiRegister();
       
   388     pvar_func_arrInitialize();
       
   389     pvar_func_arrayTestRegister();
       
   390     pvar_func_asSub();
       
   391     pvar_func_asynInterposeEosRegister();
       
   392     pvar_func_asynInterposeFlushRegister();
       
   393     pvar_func_asynRegister();
       
   394     pvar_func_dbndInitialize();
       
   395     pvar_func_drvAsynIPPortRegisterCommands();
       
   396     pvar_func_drvAsynIPServerPortRegisterCommands();
       
   397     pvar_func_editSseqRegistrar();
       
   398     pvar_func_interpRegister();
       
   399     pvar_func_streamRegistrar();
       
   400     pvar_func_subAveRegister();
       
   401     pvar_func_syncInitialize();
       
   402     pvar_func_tsInitialize();
       
   403     pvar_func_register_func_aSubReadDHTInit();
       
   404     pvar_func_register_func_aSubReadDHTProcess();
       
   405     iocshRegisterVariable(vardefs);
       
   406     return 0;
       
   407 }
       
   408 
       
   409 /* kstm_registerRecordDeviceDriver */
       
   410 static const iocshArg rrddArg0 = {"pdbbase", iocshArgPdbbase};
       
   411 static const iocshArg *rrddArgs[] = {&rrddArg0};
       
   412 static const iocshFuncDef rrddFuncDef =
       
   413     {"kstm_registerRecordDeviceDriver", 1, rrddArgs};
       
   414 static void rrddCallFunc(const iocshArgBuf *)
       
   415 {
       
   416     kstm_registerRecordDeviceDriver(*iocshPpdbbase);
       
   417 }
       
   418 
       
   419 } // extern "C"
       
   420 
       
   421 /*
       
   422  * Register commands on application startup
       
   423  */
       
   424 static int Registration() {
       
   425     iocshRegisterCommon();
       
   426     iocshRegister(&rrddFuncDef, rrddCallFunc);
       
   427     return 0;
       
   428 }
       
   429 
       
   430 static int done = Registration();