lib: compile liblttng-ctl as C++
[lttng-tools.git] / tests / regression / ust / clock-override / lttng-ust-clock-override-test.c
1 /*
2 * lttng-clock-override-test.c
3 *
4 * Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 * Copyright (C) 2015 Jonthan Rajotte <jonathan.rajotte-julien@efficios.com>
6 *
7 * SPDX-License-Identifier: MIT
8 *
9 * Based on lttng-clock-override-example.c from LTTng-ust example
10 *
11 */
12
13 #include <stdlib.h>
14 #include <common/compat/time.h>
15 #include <string.h>
16 #include <stdio.h>
17 #include <lttng/lttng-export.h>
18 #include <lttng/ust-clock.h>
19
20 static
21 uint64_t plugin_read64(void)
22 {
23 /* Freeze time */
24 return 0;
25 }
26
27 static
28 uint64_t plugin_freq(void)
29 {
30 return 1000; /* 1KHz clock (very coarse!) */
31 }
32
33 static
34 int plugin_uuid(char *uuid)
35 {
36 const char myuuid[] = "83c63deb-7aa4-48fb-abda-946f400d76e6";
37 memcpy(uuid, myuuid, LTTNG_UST_UUID_STR_LEN);
38 return 0;
39 }
40
41 static
42 const char *plugin_name(void)
43 {
44 return "lttng_test_clock_override";
45 }
46
47 static
48 const char *plugin_description(void)
49 {
50 return "Freeze time with 1KHz for regression test";
51 }
52
53 LTTNG_EXPORT void lttng_ust_clock_plugin_init(void);
54 void lttng_ust_clock_plugin_init(void)
55 {
56 int ret;
57
58 ret = lttng_ust_trace_clock_set_read64_cb(plugin_read64);
59 if (ret) {
60 fprintf(stderr, "Error setting clock override read64 callback: %s\n",
61 strerror(-ret));
62 goto error;
63 }
64 ret = lttng_ust_trace_clock_set_freq_cb(plugin_freq);
65 if (ret) {
66 fprintf(stderr, "Error setting clock override freq callback: %s\n",
67 strerror(-ret));
68 goto error;
69 }
70 ret = lttng_ust_trace_clock_set_uuid_cb(plugin_uuid);
71 if (ret) {
72 fprintf(stderr, "Error setting clock override uuid callback: %s\n",
73 strerror(-ret));
74 goto error;
75 }
76
77 ret = lttng_ust_trace_clock_set_name_cb(plugin_name);
78 if (ret) {
79 fprintf(stderr, "Error setting clock override name callback: %s\n",
80 strerror(-ret));
81 goto error;
82 }
83
84 ret = lttng_ust_trace_clock_set_description_cb(plugin_description);
85 if (ret) {
86 fprintf(stderr, "Error setting clock override description callback: %s\n",
87 strerror(-ret));
88 goto error;
89 }
90
91 ret = lttng_ust_enable_trace_clock_override();
92 if (ret) {
93 fprintf(stderr, "Error enabling clock override: %s\n",
94 strerror(-ret));
95 goto error;
96 }
97
98 return;
99
100 error:
101 exit(EXIT_FAILURE);
102 }
This page took 0.030542 seconds and 4 git commands to generate.