.. highlight:: c .. _pragma_soc_interface: Configure Accelerator Arguments ------------------------------- **Syntax** ``#pragma LEGUP soc_interface argument() bytes() 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 | +-------------------+-----------------------------------------------------+----------+----------------+----------------------------+ | ``bytes`` | Integer | Yes | | Argument size in bytes | +-------------------+-----------------------------------------------------+----------+----------------+----------------------------+ | ``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) bytes(100) transfer_type(copy) ... } --------------------------------------------------------------------------------