Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536/* SPDX-License-Identifier: GPL-2.0 */#ifndef _LIVEPATCH_PATCH_H#define _LIVEPATCH_PATCH_H
#include <linux/livepatch.h>#include <linux/list.h>#include <linux/ftrace.h>
/** * struct klp_ops - structure for tracking registered ftrace ops structs * * A single ftrace_ops is shared between all enabled replacement functions * (klp_func structs) which have the same old_func. This allows the switch * between function versions to happen instantaneously by updating the klp_ops * struct's func_stack list. The winner is the klp_func at the top of the * func_stack (front of the list). * * @node: node for the global klp_ops list * @func_stack: list head for the stack of klp_func's (active func is on top) * @fops: registered ftrace ops struct */struct klp_ops { struct list_head node; struct list_head func_stack; struct ftrace_ops fops;};
struct klp_ops *klp_find_ops(void *old_func);
int klp_patch_object(struct klp_object *obj);void klp_unpatch_object(struct klp_object *obj);void klp_unpatch_objects(struct klp_patch *patch);void klp_unpatch_objects_dynamic(struct klp_patch *patch);
#endif /* _LIVEPATCH_PATCH_H */