13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
23d0407baSopenharmony_ci/*
33d0407baSopenharmony_ci * android_vendor.h - Android vendor data
43d0407baSopenharmony_ci *
53d0407baSopenharmony_ci * Copyright 2020 Google LLC
63d0407baSopenharmony_ci *
73d0407baSopenharmony_ci * These macros are to be used to reserve space in kernel data structures
83d0407baSopenharmony_ci * for use by vendor modules.
93d0407baSopenharmony_ci *
103d0407baSopenharmony_ci * These macros should be used before the kernel abi is "frozen".
113d0407baSopenharmony_ci * Fields can be added to various kernel structures that need space
123d0407baSopenharmony_ci * for functionality implemented in vendor modules. The use of
133d0407baSopenharmony_ci * these fields is vendor specific.
143d0407baSopenharmony_ci */
153d0407baSopenharmony_ci#ifndef _ANDROID_VENDOR_H
163d0407baSopenharmony_ci#define _ANDROID_VENDOR_H
173d0407baSopenharmony_ci
183d0407baSopenharmony_ci/*
193d0407baSopenharmony_ci * ANDROID_VENDOR_DATA
203d0407baSopenharmony_ci *   Reserve some "padding" in a structure for potential future use.
213d0407baSopenharmony_ci *   This normally placed at the end of a structure.
223d0407baSopenharmony_ci *   number: the "number" of the padding variable in the structure.  Start with
233d0407baSopenharmony_ci *   1 and go up.
243d0407baSopenharmony_ci *
253d0407baSopenharmony_ci * ANDROID_VENDOR_DATA_ARRAY
263d0407baSopenharmony_ci *   Same as ANDROID_VENDOR_DATA but allocates an array of u64 with
273d0407baSopenharmony_ci *   the specified size
283d0407baSopenharmony_ci */
293d0407baSopenharmony_ci#define ANDROID_VENDOR_DATA(n)		u64 android_vendor_data##n
303d0407baSopenharmony_ci#define ANDROID_VENDOR_DATA_ARRAY(n, s)	u64 android_vendor_data##n[s]
313d0407baSopenharmony_ci
323d0407baSopenharmony_ci#define ANDROID_OEM_DATA(n)		u64 android_oem_data##n
333d0407baSopenharmony_ci#define ANDROID_OEM_DATA_ARRAY(n, s)	u64 android_oem_data##n[s]
343d0407baSopenharmony_ci
353d0407baSopenharmony_ci#endif /* _ANDROID_VENDOR_H */
36