### Function

# GIRepository cclosure_marshal_generic

since: 2.80

#### Declaration

    void
    gi_cclosure_marshal_generic (
      GClosure* closure,
      GValue* return_gvalue,
      unsigned int n_param_values,
      const GValue* param_values,
      void* invocation_hint,
      void* marshal_data
    )

#### Description

A generic C closure marshal function using ffi and `GIArgument`.

Available since: 2.80

This function is not directly available to language bindings.

#### Parameters

`closure`

  Type: `GClosure`

  A `GClosure`

  The data is owned by the caller of the function.

`return_gvalue`

  Type: `GValue`

  Return location for the return value from the closure, or `NULL` to ignore.

  The argument will be set by the function.
  The argument can be `NULL`.
  The data is owned by the function.

`n_param_values`

  Type: `unsigned int`

  Number of param values.

`param_values`

  Type: An array of `GValue`

  Values to pass to the closure parameters.

  The length of the array is specified in the `n_param_values` argument.
  The data is owned by the caller of the function.

`invocation_hint`

  Type: `void*`

  Invocation hint.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`marshal_data`

  Type: `void*`

  Marshal data.

  The argument can be `NULL`.
  The data is owned by the caller of the function.