Sound Open Firmware
Loading...
Searching...
No Matches
modules.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2019 Intel Corporation. All rights reserved.
4 *
5 * Author: Jaroslaw Stelter <jaroslaw.stelter@intel.com>
6 */
7
8#ifndef __SOF_AUDIO_MODULES__
9#define __SOF_AUDIO_MODULES__
10
12
13/* Intel module adapter is an extension to SOF module adapter component that allows to integrate
14 * modules developed under IADK (Intel Audio Development Kit)
15 * and LMDK (Loadable Modules Dev Kit) Framework. Modules uses uniform
16 * set of interfaces and are linked into separate library. These modules are loaded in runtime
17 * through library_manager and then after registration into SOF component infrastructure are
18 * interfaced through module adapter API.
19 * Since IADK modules uses ProcessingModuleInterface to control/data transfer and AdspSystemService
20 * to use base FW services from internal module code, there is a communication shim layer defined
21 * in intel directory.
22 *
23 * Since ProcessingModuleInterface consists of virtual functions, there are C++ -> C wrappers
24 * defined to access the interface calls from SOF code.
25 *
26 * The main assumption here was to load IADK Modules without any code modifications. Therefore C++
27 * function, structures and variables definition are here kept with original form from
28 * IADK Framework. This provides binary compatibility for already developed 3rd party modules.
29 *
30 * There are three entities in intel module adapter package:
31 * - System Agent - A mediator to allow the custom module to interact with the base SOF FW.
32 * It calls IADK module entry point and provides all necessary information to
33 * connect both sides of ProcessingModuleInterface and System Service.
34 * - System Service - exposes of SOF base FW services to the module.
35 * - Processing Module Adapter - SOF base FW side of ProcessingModuleInterface API
36 *
37 * Using the same philosofy loadable modules are using module adapter to interact with SOF FW.
38 * Module recognision is done by checking module API version defined in module/module/api_ver.h
39 * with version read from elf file.
40 */
41
42/* Processing Module Adapter API */
43extern const struct module_interface processing_module_adapter_interface;
44
45#endif /* __SOF_AUDIO_MODULES__ */
const struct module_interface processing_module_adapter_interface