code: def _export_csrc_defines(self, dirname, name, prefix):
      # Input
      input_buffer_size_defines = []
      for n, s in enumerate(self._info._input_buffer_sizes):
          input_buffer_size_defines.append(
              "#define {}_INPUT{}_SIZE ({})".format(
                  prefix.upper(), n, s
              )
          )
  
      # Output
      output_buffer_size_defines = []
      for n, s in enumerate(self._info._output_buffer_sizes):
          output_buffer_size_defines.append(
              "#define {}_OUTPUT{}_SIZE ({})".format(
                  prefix.upper(), n, s
              )
          )
  
      # Parameter
      param_buffer = []
      if len(self._info._parameters) > 0:
          param_buffer.append("/// Number of parameter buffers.")
          param_buffer.append(
              "#define {}_NUM_OF_PARAM_BUFFERS ({})".format(
                  prefix.upper(), len(self._info._parameters)
              )
          )
          param_buffer.append("/// Parameter buffer sizes.")
          for n, (param_name, param) in enumerate(
              self._info._parameters.items()
          ):
              size = nnabla.utils.converter.calc_shape_size(
                  param.shape, 1
              )
              param_buffer.append(
                  "#define {}_PARAM{}_SIZE ({})".format(
                      prefix.upper(), n, size
                  )
              )
          param_buffer.append("/// Pointer of allocated buffer.")
          param_buffer.append(
              "float* {}_param_buffer(void* context, int index);".format(
                  prefix
              )
          )
          param_buffer.append("")
  
      # Generate source
      header = csrc_defines.format(
          name_upper=name.upper(),
          prefix=prefix,
          prefix_upper=prefix.upper(),
          num_of_input_buffers=self._info._num_of_inputs,
          input_buffer_size_defines="\n".join(
              input_buffer_size_defines
          ),
          num_of_output_buffers=self._info._num_of_outputs,
          output_buffer_size_defines="\n".join(
              output_buffer_size_defines
          ),
          num_of_param_buffers=len(self._info._parameters),
          param_buffer="\n".join(param_buffer),
      )
  
      header_filename = os.path.join(
          dirname, "{}_inference.h".format(name)
      )
      with open(header_filename, "w") as f:
          f.write(header)
  
file_path: nnabla/python/src/nnabla/utils/converter/nnablart/csrc.py
imports: import os
  import nnabla.utils.converter
  from .csrc_templates import csrc_parameters_defines, csrc_parameters_implements, csrc_defines, csrc_implements, csrc_example, csrc_gnumake
  from .utils import create_nnabart_info
  from .utils import preprocess_for_exporter
label_desc: Use image node_id 3 for calling the CsrcExporter obj's underlying member method code with example usage: obj._export_csrc_defines(dirname, name, prefix) without return types