linux/include/uapi/sound/sof/abi.h

/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
/*
 * This file is provided under a dual BSD/GPLv2 license.  When using or
 * redistributing this file, you may do so under either license.
 *
 * Copyright(c) 2018 Intel Corporation
 */

/**
 * SOF ABI versioning is based on Semantic Versioning where we have a given
 * MAJOR.MINOR.PATCH version number. See https://semver.org/
 *
 * Rules for incrementing or changing version :-
 *
 * 1) Increment MAJOR version if you make incompatible API changes. MINOR and
 *    PATCH should be reset to 0.
 *
 * 2) Increment MINOR version if you add backwards compatible features or
 *    changes. PATCH should be reset to 0.
 *
 * 3) Increment PATCH version if you add backwards compatible bug fixes.
 */

#ifndef __INCLUDE_UAPI_SOUND_SOF_ABI_H__
#define __INCLUDE_UAPI_SOUND_SOF_ABI_H__

#include <linux/types.h>

/* SOF ABI version major, minor and patch numbers */
#define SOF_ABI_MAJOR
#define SOF_ABI_MINOR
#define SOF_ABI_PATCH

/* SOF ABI version number. Format within 32bit word is MMmmmppp */
#define SOF_ABI_MAJOR_SHIFT
#define SOF_ABI_MAJOR_MASK
#define SOF_ABI_MINOR_SHIFT
#define SOF_ABI_MINOR_MASK
#define SOF_ABI_PATCH_SHIFT
#define SOF_ABI_PATCH_MASK

#define SOF_ABI_VER(major, minor, patch)

#define SOF_ABI_VERSION_MAJOR(version)
#define SOF_ABI_VERSION_MINOR(version)
#define SOF_ABI_VERSION_PATCH(version)

#define SOF_ABI_VERSION_INCOMPATIBLE(sof_ver, client_ver)

#define SOF_ABI_VERSION

/* SOF ABI magic number "SOF\0". */
#define SOF_ABI_MAGIC
/* SOF IPC4 ABI magic number "SOF4". */
#define SOF_IPC4_ABI_MAGIC

#endif