root/lib/livepatch/test_klp_livepatch.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. livepatch_cmdline_proc_show
  2. test_klp_livepatch_init
  3. test_klp_livepatch_exit

   1 // SPDX-License-Identifier: GPL-2.0
   2 // Copyright (C) 2014 Seth Jennings <sjenning@redhat.com>
   3 
   4 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
   5 
   6 #include <linux/module.h>
   7 #include <linux/kernel.h>
   8 #include <linux/livepatch.h>
   9 
  10 #include <linux/seq_file.h>
  11 static int livepatch_cmdline_proc_show(struct seq_file *m, void *v)
  12 {
  13         seq_printf(m, "%s: %s\n", THIS_MODULE->name,
  14                    "this has been live patched");
  15         return 0;
  16 }
  17 
  18 static struct klp_func funcs[] = {
  19         {
  20                 .old_name = "cmdline_proc_show",
  21                 .new_func = livepatch_cmdline_proc_show,
  22         }, { }
  23 };
  24 
  25 static struct klp_object objs[] = {
  26         {
  27                 /* name being NULL means vmlinux */
  28                 .funcs = funcs,
  29         }, { }
  30 };
  31 
  32 static struct klp_patch patch = {
  33         .mod = THIS_MODULE,
  34         .objs = objs,
  35 };
  36 
  37 static int test_klp_livepatch_init(void)
  38 {
  39         return klp_enable_patch(&patch);
  40 }
  41 
  42 static void test_klp_livepatch_exit(void)
  43 {
  44 }
  45 
  46 module_init(test_klp_livepatch_init);
  47 module_exit(test_klp_livepatch_exit);
  48 MODULE_LICENSE("GPL");
  49 MODULE_INFO(livepatch, "Y");
  50 MODULE_AUTHOR("Seth Jennings <sjenning@redhat.com>");
  51 MODULE_DESCRIPTION("Livepatch test: livepatch module");

/* [<][>][^][v][top][bottom][index][help] */