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