include/uapi/sound/asoc.h
Source file repositories/reference/linux-study-clean/include/uapi/sound/asoc.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/sound/asoc.h- Extension
.h- Size
- 20170 bytes
- Lines
- 580
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hsound/asound.h
Detected Declarations
struct snd_soc_tplg_hdrstruct snd_soc_tplg_vendor_uuid_elemstruct snd_soc_tplg_vendor_value_elemstruct snd_soc_tplg_vendor_string_elemstruct snd_soc_tplg_vendor_arraystruct snd_soc_tplg_privatestruct snd_soc_tplg_tlv_dbscalestruct snd_soc_tplg_ctl_tlvstruct snd_soc_tplg_channelstruct snd_soc_tplg_io_opsstruct snd_soc_tplg_ctl_hdrstruct snd_soc_tplg_stream_capsstruct snd_soc_tplg_streamstruct snd_soc_tplg_hw_configstruct snd_soc_tplg_manifeststruct snd_soc_tplg_mixer_controlstruct snd_soc_tplg_enum_controlstruct snd_soc_tplg_bytes_controlstruct snd_soc_tplg_dapm_graph_elemstruct snd_soc_tplg_dapm_widgetstruct snd_soc_tplg_pcmstruct snd_soc_tplg_link_configstruct snd_soc_tplg_dai
Annotated Snippet
struct snd_soc_tplg_hdr {
__le32 magic; /* magic number */
__le32 abi; /* ABI version */
__le32 version; /* optional vendor specific version details */
__le32 type; /* SND_SOC_TPLG_TYPE_ */
__le32 size; /* size of this structure */
__le32 vendor_type; /* optional vendor specific type info */
__le32 payload_size; /* data bytes, excluding this header */
__le32 index; /* identifier for block */
__le32 count; /* number of elements in block */
} __attribute__((packed));
/* vendor tuple for uuid */
struct snd_soc_tplg_vendor_uuid_elem {
__le32 token;
char uuid[16];
} __attribute__((packed));
/* vendor tuple for a bool/byte/short/word value */
struct snd_soc_tplg_vendor_value_elem {
__le32 token;
__le32 value;
} __attribute__((packed));
/* vendor tuple for string */
struct snd_soc_tplg_vendor_string_elem {
__le32 token;
char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
} __attribute__((packed));
struct snd_soc_tplg_vendor_array {
__le32 size; /* size in bytes of the array, including all elements */
__le32 type; /* SND_SOC_TPLG_TUPLE_TYPE_ */
__le32 num_elems; /* number of elements in array */
union {
__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid);
__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value);
__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string);
};
} __attribute__((packed));
/*
* Private data.
* All topology objects may have private data that can be used by the driver or
* firmware. Core will ignore this data.
*/
struct snd_soc_tplg_private {
__le32 size; /* in bytes of private data */
union {
__DECLARE_FLEX_ARRAY(char, data);
__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
};
} __attribute__((packed));
/*
* Kcontrol TLV data.
*/
struct snd_soc_tplg_tlv_dbscale {
__le32 min;
__le32 step;
__le32 mute;
} __attribute__((packed));
struct snd_soc_tplg_ctl_tlv {
__le32 size; /* in bytes of this structure */
__le32 type; /* SNDRV_CTL_TLVT_*, type of TLV */
union {
__le32 data[SND_SOC_TPLG_TLV_SIZE];
struct snd_soc_tplg_tlv_dbscale scale;
};
} __attribute__((packed));
/*
* Kcontrol channel data
*/
struct snd_soc_tplg_channel {
__le32 size; /* in bytes of this structure */
__le32 reg;
__le32 shift;
__le32 id; /* ID maps to Left, Right, LFE etc */
} __attribute__((packed));
/*
* Genericl Operations IDs, for binding Kcontrol or Bytes ext ops
* Kcontrol ops need get/put/info.
* Bytes ext ops need get/put.
*/
struct snd_soc_tplg_io_ops {
__le32 get;
__le32 put;
Annotation
- Immediate include surface: `linux/types.h`, `sound/asound.h`.
- Detected declarations: `struct snd_soc_tplg_hdr`, `struct snd_soc_tplg_vendor_uuid_elem`, `struct snd_soc_tplg_vendor_value_elem`, `struct snd_soc_tplg_vendor_string_elem`, `struct snd_soc_tplg_vendor_array`, `struct snd_soc_tplg_private`, `struct snd_soc_tplg_tlv_dbscale`, `struct snd_soc_tplg_ctl_tlv`, `struct snd_soc_tplg_channel`, `struct snd_soc_tplg_io_ops`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.