.. highlight:: c .. _pragma_soc_interface: Configure Accelerator Arguments ------------------------------- **Syntax** ``#pragma LEGUP soc_interface argument() num_elements() transfer_type(cpu_driven|copy|direct|stream) direction(input|output|inout>`` **Description** This pragma specifies the configurations for accelerator arguments in the hybrid flow. To use this pragma, the function must be set as an accelerator using :ref:`pragma_function_soc_top`. **Parameters** +-------------------+-----------------------------------------------------+----------+----------------+--------------------------------+ | Parameter | Value | Optional | Default | Description | +===================+=====================================================+==========+================+================================+ | ``argument`` | String | No | | Argument name | +-------------------+-----------------------------------------------------+----------+----------------+--------------------------------+ | ``num_elements`` | Integer | Yes | | Number of elements of argument | +-------------------+-----------------------------------------------------+----------+----------------+--------------------------------+ | ``transfer_type`` | ``cpu_driven`` | ``copy`` | ``direct`` | ``stream`` | Yes | ``cpu_driven`` | Transfer type | +-------------------+-----------------------------------------------------+----------+----------------+--------------------------------+ | ``direction`` | ``input`` | ``output`` | ``inout`` | Yes | | Direction of the interface | +-------------------+-----------------------------------------------------+----------+----------------+--------------------------------+ **Position** At the beginning of the function definition block. **Examples** .. code-block:: c int sum(int *a) { #pragma LEGUP function soc_top #pragma LEGUP soc_interface argument(a) num_elements(100) transfer_type(copy) ... } --------------------------------------------------------------------------------