%selectfile NULL_FILE
%if EXISTS("_PRM_SFCNTUNABLE_") == 0
%assign _PRM_SFCNTUNABLE_ = 1
%include "prm_cacheutils.tlc"
%function SLibCacheSfcnTunablePrmBuffers() void
%<SLibCreatePrmBuffer("SfcnTunable", "Decl")>
%assign declBuffer = FcnGenSfcnTunableParamDecl()
%<SLibSetPrmBufferPart("SfcnTunable", "Decl", "Code", declBuffer)>
%endfunction
%function FcnGenSfcnTunableParamDecl() void
%assign cacheBuffer = ""
%if CodeFormat == "S-Function" && !Accelerator
%openfile cacheBuffer
%foreach prmIdx = NumParameters
%assign mdlParam = Parameter[prmIdx]
%assign pName = LibGetRecordIdentifier(mdlParam)
%if mdlParam.StorageClass == "Auto_SFCN"
%assert !LibGetRecordIsComplex(mdlParam)
%assert LibIsBuiltInDataType(mdlParam.OriginalDataTypeIdx)
#define %<pName>(S) _ssGetSFcnParam(S,%<ModelParameters.SfcnParamIdx>)
%assign ::CompiledModel.ModelParameters.SfcnParamIdx = ...
ModelParameters.SfcnParamIdx + 1
%endif
%endforeach
%closefile cacheBuffer
%endif
%return cacheBuffer
%endfunction
%endif