Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/uapi/sound/sof/abi.h
26295 views
1
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2
/*
3
* This file is provided under a dual BSD/GPLv2 license. When using or
4
* redistributing this file, you may do so under either license.
5
*
6
* Copyright(c) 2018 Intel Corporation
7
*/
8
9
/**
10
* SOF ABI versioning is based on Semantic Versioning where we have a given
11
* MAJOR.MINOR.PATCH version number. See https://semver.org/
12
*
13
* Rules for incrementing or changing version :-
14
*
15
* 1) Increment MAJOR version if you make incompatible API changes. MINOR and
16
* PATCH should be reset to 0.
17
*
18
* 2) Increment MINOR version if you add backwards compatible features or
19
* changes. PATCH should be reset to 0.
20
*
21
* 3) Increment PATCH version if you add backwards compatible bug fixes.
22
*/
23
24
#ifndef __INCLUDE_UAPI_SOUND_SOF_ABI_H__
25
#define __INCLUDE_UAPI_SOUND_SOF_ABI_H__
26
27
#include <linux/types.h>
28
29
/* SOF ABI version major, minor and patch numbers */
30
#define SOF_ABI_MAJOR 3
31
#define SOF_ABI_MINOR 23
32
#define SOF_ABI_PATCH 1
33
34
/* SOF ABI version number. Format within 32bit word is MMmmmppp */
35
#define SOF_ABI_MAJOR_SHIFT 24
36
#define SOF_ABI_MAJOR_MASK 0xff
37
#define SOF_ABI_MINOR_SHIFT 12
38
#define SOF_ABI_MINOR_MASK 0xfff
39
#define SOF_ABI_PATCH_SHIFT 0
40
#define SOF_ABI_PATCH_MASK 0xfff
41
42
#define SOF_ABI_VER(major, minor, patch) \
43
(((major) << SOF_ABI_MAJOR_SHIFT) | \
44
((minor) << SOF_ABI_MINOR_SHIFT) | \
45
((patch) << SOF_ABI_PATCH_SHIFT))
46
47
#define SOF_ABI_VERSION_MAJOR(version) \
48
(((version) >> SOF_ABI_MAJOR_SHIFT) & SOF_ABI_MAJOR_MASK)
49
#define SOF_ABI_VERSION_MINOR(version) \
50
(((version) >> SOF_ABI_MINOR_SHIFT) & SOF_ABI_MINOR_MASK)
51
#define SOF_ABI_VERSION_PATCH(version) \
52
(((version) >> SOF_ABI_PATCH_SHIFT) & SOF_ABI_PATCH_MASK)
53
54
#define SOF_ABI_VERSION_INCOMPATIBLE(sof_ver, client_ver) \
55
(SOF_ABI_VERSION_MAJOR((sof_ver)) != \
56
SOF_ABI_VERSION_MAJOR((client_ver)) \
57
)
58
59
#define SOF_ABI_VERSION SOF_ABI_VER(SOF_ABI_MAJOR, SOF_ABI_MINOR, SOF_ABI_PATCH)
60
61
/* SOF ABI magic number "SOF\0". */
62
#define SOF_ABI_MAGIC 0x00464F53
63
/* SOF IPC4 ABI magic number "SOF4". */
64
#define SOF_IPC4_ABI_MAGIC 0x34464F53
65
66
#endif
67
68