cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

patch.h (1146B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _LIVEPATCH_PATCH_H
      3#define _LIVEPATCH_PATCH_H
      4
      5#include <linux/livepatch.h>
      6#include <linux/list.h>
      7#include <linux/ftrace.h>
      8
      9/**
     10 * struct klp_ops - structure for tracking registered ftrace ops structs
     11 *
     12 * A single ftrace_ops is shared between all enabled replacement functions
     13 * (klp_func structs) which have the same old_func.  This allows the switch
     14 * between function versions to happen instantaneously by updating the klp_ops
     15 * struct's func_stack list.  The winner is the klp_func at the top of the
     16 * func_stack (front of the list).
     17 *
     18 * @node:	node for the global klp_ops list
     19 * @func_stack:	list head for the stack of klp_func's (active func is on top)
     20 * @fops:	registered ftrace ops struct
     21 */
     22struct klp_ops {
     23	struct list_head node;
     24	struct list_head func_stack;
     25	struct ftrace_ops fops;
     26};
     27
     28struct klp_ops *klp_find_ops(void *old_func);
     29
     30int klp_patch_object(struct klp_object *obj);
     31void klp_unpatch_object(struct klp_object *obj);
     32void klp_unpatch_objects(struct klp_patch *patch);
     33void klp_unpatch_objects_dynamic(struct klp_patch *patch);
     34
     35#endif /* _LIVEPATCH_PATCH_H */