code: def generate_c_interface_header(
      module_name,
      inputs,
      outputs,
      pools,
      io_pool_allocations,
      devices,
      workspace_size,
      include_path,
      input_sizes,
      output_sizes,
  ):
      """Generate C Interface header to be included in MLF"""
      mangled_name = to_c_variable_style(
          prefix_generated_name(module_name)
      )
      metadata_header = os.path.join(include_path, f"{mangled_name}.h")
  
      interface_c_create = tvm._ffi.get_global_func(
          "runtime.InterfaceCCreate"
      )
      interface_c_module = interface_c_create(
          module_name,
          inputs,
          outputs,
          pools,
          io_pool_allocations,
          devices,
          workspace_size,
          input_sizes,
          output_sizes,
      )
  
      with open(metadata_header, "w") as header_file:
          header_file.write(interface_c_module.get_source())
  
      return metadata_header
  
imports: import datetime
  import json
  import os
  import pathlib
  import re
  import tarfile
  import typing
  import tvm
  from tvm.micro import get_standalone_crt_dir, get_microtvm_template_projects
  from .._ffi import get_global_func
  from ..contrib import utils
  from ..driver import build_module
  from ..relay import param_dict
  from ..relay.backend import executor_factory
  from ..relay.backend.name_transforms import prefix_generated_name, to_c_variable_style
  from ..tir import expr
label_desc: Use image node_id 1 for calling a global function with example usage: generate_c_interface_header(module_name, inputs, outputs, pools, io_pool_allocations, devices, workspace_size, include_path, input_sizes, output_sizes) and returns: metadata_header