Blame view

samples/trace_events/trace-events-sample.c 1.03 KB
9cfe06f8c   Steven Rostedt   tracing/events: a...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  #include <linux/module.h>
  #include <linux/kthread.h>
  
  /*
   * Any file that uses trace points, must include the header.
   * But only one file, must include the header by defining
   * CREATE_TRACE_POINTS first.  This will make the C code that
   * creates the handles for the trace points.
   */
  #define CREATE_TRACE_POINTS
  #include "trace-events-sample.h"
  
  
  static void simple_thread_func(int cnt)
  {
  	set_current_state(TASK_INTERRUPTIBLE);
  	schedule_timeout(HZ);
  	trace_foo_bar("hello", cnt);
9cfe06f8c   Steven Rostedt   tracing/events: a...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  }
  
  static int simple_thread(void *arg)
  {
  	int cnt = 0;
  
  	while (!kthread_should_stop())
  		simple_thread_func(cnt++);
  
  	return 0;
  }
  
  static struct task_struct *simple_tsk;
  
  static int __init trace_event_init(void)
  {
  	simple_tsk = kthread_run(simple_thread, NULL, "event-sample");
  	if (IS_ERR(simple_tsk))
  		return -1;
  
  	return 0;
  }
  
  static void __exit trace_event_exit(void)
  {
  	kthread_stop(simple_tsk);
  }
  
  module_init(trace_event_init);
  module_exit(trace_event_exit);
  
  MODULE_AUTHOR("Steven Rostedt");
  MODULE_DESCRIPTION("trace-events-sample");
  MODULE_LICENSE("GPL");