diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-10-10 11:03:31 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-10-10 11:03:43 +0200 |
commit | dfd2d876b3fda1790bc0239ba4c6967e25d16e91 (patch) | |
tree | 45c2ec4b25afdf7b521dec642f6b75112bb401a3 /include/linux/btf.h | |
parent | a790cc3a4fad75048295571a350b95b87e022a5a (diff) | |
parent | 10d5ea5a436da8d60cdb5845f454d595accdbce0 (diff) |
Merge remote-tracking branch 'wireless/main' into wireless-next
Pull in wireless/main content since some new code would
otherwise conflict with it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/linux/btf.h')
-rw-r--r-- | include/linux/btf.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/btf.h b/include/linux/btf.h index ad93c2d9cc1c..f9aababc5d78 100644 --- a/include/linux/btf.h +++ b/include/linux/btf.h @@ -52,6 +52,15 @@ #define KF_SLEEPABLE (1 << 5) /* kfunc may sleep */ #define KF_DESTRUCTIVE (1 << 6) /* kfunc performs destructive actions */ +/* + * Return the name of the passed struct, if exists, or halt the build if for + * example the structure gets renamed. In this way, developers have to revisit + * the code using that structure name, and update it accordingly. + */ +#define stringify_struct(x) \ + ({ BUILD_BUG_ON(sizeof(struct x) < 0); \ + __stringify(x); }) + struct btf; struct btf_member; struct btf_type; @@ -441,4 +450,14 @@ static inline int register_btf_id_dtor_kfuncs(const struct btf_id_dtor_kfunc *dt } #endif +static inline bool btf_type_is_struct_ptr(struct btf *btf, const struct btf_type *t) +{ + if (!btf_type_is_ptr(t)) + return false; + + t = btf_type_skip_modifiers(btf, t->type, NULL); + + return btf_type_is_struct(t); +} + #endif |