Sound Open Firmware
Loading...
Searching...
No Matches
module_initial_settings_concrete.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2022 Intel Corporation. All rights reserved.
4 */
5
6#ifndef _MODULE_INITIAL_SETTINGS_CONCRETE_H
7#define _MODULE_INITIAL_SETTINGS_CONCRETE_H
8
10#include <utilities/array.h>
11#include <sof/compiler_attributes.h>
12
13#include <stddef.h>
14
15#pragma pack(push, 4)
43#pragma pack(pop)
44
45namespace dsp_fw
46{
52{
56 explicit ModuleInitialSettingsConcrete(DwordArray const &cfg_ipc_msg);
57
63 void DeduceBaseModuleCfgExt(size_t in_pins_count, size_t out_pins_count);
64
71 size_t &length);
72
74 bool IsParsable(void) const
75 {
76 return ((cfg_ != NULL) || (cfg_ext_ != NULL));
77 }
78
81 {
82 return cfg_;
83 }
84
87 {
88 return cfg_ext_;
89 }
90
91private:
92 BaseModuleCfg const *cfg_;
93 BaseModuleCfgExt const *cfg_ext_;
94 /* temporary extended module config for case where it is not part of
95 * the INIT_INSTANCE IPC message
96 */
97 union {
99 /* struct below reserved the placeholder for the biggest possible BaseModuleCfgExt
100 * block.
101 */
102 struct {
103 uint16_t do_not_use1;
104 uint16_t do_not_use2;
105 uint8_t do_not_use3[8];
106 uint32_t do_not_use4;
110 } tmp_cfg_ext_;
111};
112}
113
114#endif /*_MODULE_INITIAL_SETTINGS_CONCRETE_H */
struct ipc4_input_pin_format InputPinFormat
Definition module_initial_settings.h:17
struct ipc4_base_module_cfg BaseModuleCfg
Definition module_initial_settings.h:15
struct ipc4_output_pin_format OutputPinFormat
Definition module_initial_settings.h:18
#define OUTPUT_PIN_COUNT
Definition module_initial_settings.h:22
#define INPUT_PIN_COUNT
Definition module_initial_settings.h:21
Definition module_initial_settings_concrete.h:46
ModuleInitialSettingsKey
Enumeration values of keys to access to the ModuleInitialSettings items.
Definition module_initial_settings.h:27
Definition module_initial_settings_concrete.h:16
InputPinFormat input_pins[1]
Specifies format of input pins.
Definition module_initial_settings_concrete.h:37
uint16_t nb_output_pins
Specifies number of items in output_pins array. Maximum size is 8.
Definition module_initial_settings_concrete.h:24
uint16_t nb_input_pins
Specifies number of items in input_pins array. Maximum size is 8.
Definition module_initial_settings_concrete.h:20
uint8_t reserved[12]
Not used, set to 0.
Definition module_initial_settings_concrete.h:28
OutputPinFormat output_pins[1]
Specifies format of output pins.
Definition module_initial_settings_concrete.h:41
uint16_t do_not_use1
Definition module_initial_settings_concrete.h:103
uint8_t do_not_use3[8]
Definition module_initial_settings_concrete.h:105
virtual void const * GetUntypedItem(intel_adsp::ModuleInitialSettingsKey key, size_t &length)
Gets the untyped value array of the settings item for the given key.
struct dsp_fw::ModuleInitialSettingsConcrete::@244320307012115145003007222040115065353367045242::@201133241140330246035257321172363110227163012236 placeholder
BaseModuleCfgExt tlv
Definition module_initial_settings_concrete.h:98
OutputPinFormat do_not_use6[OUTPUT_PIN_COUNT]
Definition module_initial_settings_concrete.h:108
uint32_t do_not_use4
Definition module_initial_settings_concrete.h:106
BaseModuleCfgExt const * GetBaseModuleCfgExt(void) const
Gets pointer on the BaseModuleCfgExt data retrieved from the IPC message.
Definition module_initial_settings_concrete.h:86
void DeduceBaseModuleCfgExt(size_t in_pins_count, size_t out_pins_count)
Extrapolates some hard-coded BaseModuleCfgExt based on the legacy BaseModuleCfg and the given input c...
InputPinFormat do_not_use5[INPUT_PIN_COUNT]
Definition module_initial_settings_concrete.h:107
uint16_t do_not_use2
Definition module_initial_settings_concrete.h:104
BaseModuleCfg const * GetBaseModuleCfg(void) const
Gets pointer on the BaseModuleCfg data retrieved from the IPC message.
Definition module_initial_settings_concrete.h:80
ModuleInitialSettingsConcrete(DwordArray const &cfg_ipc_msg)
Initializes a new ModuleInitialSettingsConcrete instance given an INIT_INSTANCE IPC message blob.
bool IsParsable(void) const
Indicates if the given INIT_INSTANCE IPC message is parse-able.
Definition module_initial_settings_concrete.h:74
Defines the interface to retrieve untyped items based on ModuleInitialSettingsKey values.
Definition module_initial_settings.h:59
uint32_t length
Definition tlv.h:1