aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/livepatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/livepatch.h')
-rw-r--r--include/linux/livepatch.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/include/linux/livepatch.h b/include/linux/livepatch.h
index 4754f01c1abb..aec44b1d9582 100644
--- a/include/linux/livepatch.h
+++ b/include/linux/livepatch.h
@@ -186,13 +186,20 @@ static inline bool klp_have_reliable_stack(void)
186 IS_ENABLED(CONFIG_HAVE_RELIABLE_STACKTRACE); 186 IS_ENABLED(CONFIG_HAVE_RELIABLE_STACKTRACE);
187} 187}
188 188
189typedef int (*klp_shadow_ctor_t)(void *obj,
190 void *shadow_data,
191 void *ctor_data);
192typedef void (*klp_shadow_dtor_t)(void *obj, void *shadow_data);
193
189void *klp_shadow_get(void *obj, unsigned long id); 194void *klp_shadow_get(void *obj, unsigned long id);
190void *klp_shadow_alloc(void *obj, unsigned long id, void *data, 195void *klp_shadow_alloc(void *obj, unsigned long id,
191 size_t size, gfp_t gfp_flags); 196 size_t size, gfp_t gfp_flags,
192void *klp_shadow_get_or_alloc(void *obj, unsigned long id, void *data, 197 klp_shadow_ctor_t ctor, void *ctor_data);
193 size_t size, gfp_t gfp_flags); 198void *klp_shadow_get_or_alloc(void *obj, unsigned long id,
194void klp_shadow_free(void *obj, unsigned long id); 199 size_t size, gfp_t gfp_flags,
195void klp_shadow_free_all(unsigned long id); 200 klp_shadow_ctor_t ctor, void *ctor_data);
201void klp_shadow_free(void *obj, unsigned long id, klp_shadow_dtor_t dtor);
202void klp_shadow_free_all(unsigned long id, klp_shadow_dtor_t dtor);
196 203
197#else /* !CONFIG_LIVEPATCH */ 204#else /* !CONFIG_LIVEPATCH */
198 205