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

trace-printk.c (1562B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2#include <linux/module.h>
      3#include <linux/kthread.h>
      4#include <linux/irq_work.h>
      5
      6/* Must not be static to force gcc to consider these non constant */
      7char *trace_printk_test_global_str =
      8	"This is a dynamic string that will use trace_puts\n";
      9
     10char *trace_printk_test_global_str_irq =
     11	"(irq) This is a dynamic string that will use trace_puts\n";
     12
     13char *trace_printk_test_global_str_fmt =
     14	"%sThis is a %s that will use trace_printk\n";
     15
     16static struct irq_work irqwork;
     17
     18static void trace_printk_irq_work(struct irq_work *work)
     19{
     20	trace_printk("(irq) This is a static string that will use trace_bputs\n");
     21	trace_printk(trace_printk_test_global_str_irq);
     22
     23	trace_printk("(irq) This is a %s that will use trace_bprintk()\n",
     24		     "static string");
     25
     26	trace_printk(trace_printk_test_global_str_fmt,
     27		     "(irq) ", "dynamic string");
     28}
     29
     30static int __init trace_printk_init(void)
     31{
     32	init_irq_work(&irqwork, trace_printk_irq_work);
     33
     34	trace_printk("This is a static string that will use trace_bputs\n");
     35	trace_printk(trace_printk_test_global_str);
     36
     37	/* Kick off printing in irq context */
     38	irq_work_queue(&irqwork);
     39	irq_work_sync(&irqwork);
     40
     41	trace_printk("This is a %s that will use trace_bprintk()\n",
     42		     "static string");
     43
     44	trace_printk(trace_printk_test_global_str_fmt, "", "dynamic string");
     45
     46	return 0;
     47}
     48
     49static void __exit trace_printk_exit(void)
     50{
     51}
     52
     53module_init(trace_printk_init);
     54module_exit(trace_printk_exit);
     55
     56MODULE_AUTHOR("Steven Rostedt");
     57MODULE_DESCRIPTION("trace-printk");
     58MODULE_LICENSE("GPL");