Commit | Line | Data |
---|---|---|
a58c490f | 1 | /* |
ab5be9fa | 2 | * Copyright (C) 2017 Jérémie Galarneau <jeremie.galarneau@efficios.com> |
a58c490f | 3 | * |
ab5be9fa | 4 | * SPDX-License-Identifier: LGPL-2.1-only |
a58c490f | 5 | * |
a58c490f JG |
6 | */ |
7 | ||
8 | #include <lttng/action/action-internal.h> | |
9 | #include <lttng/action/notify-internal.h> | |
10 | #include <common/macros.h> | |
11 | #include <assert.h> | |
12 | ||
13 | static | |
14 | void lttng_action_notify_destroy(struct lttng_action *action) | |
15 | { | |
16 | free(action); | |
17 | } | |
18 | ||
19 | static | |
3647288f JG |
20 | int lttng_action_notify_serialize(struct lttng_action *action, |
21 | struct lttng_dynamic_buffer *buf) | |
a58c490f JG |
22 | { |
23 | return 0; | |
24 | } | |
25 | ||
3dd04a6a JR |
26 | static |
27 | bool lttng_action_notify_is_equal(const struct lttng_action *a, | |
28 | const struct lttng_action *b) | |
29 | { | |
30 | /* There is no discriminant between notify actions. */ | |
31 | return true; | |
32 | } | |
33 | ||
a58c490f JG |
34 | struct lttng_action *lttng_action_notify_create(void) |
35 | { | |
36 | struct lttng_action_notify *notify; | |
37 | ||
38 | notify = zmalloc(sizeof(struct lttng_action_notify)); | |
39 | if (!notify) { | |
40 | goto end; | |
41 | } | |
42 | ||
6acb3f46 SM |
43 | lttng_action_init(¬ify->parent, LTTNG_ACTION_TYPE_NOTIFY, NULL, |
44 | lttng_action_notify_serialize, | |
3dd04a6a | 45 | lttng_action_notify_is_equal, |
6acb3f46 | 46 | lttng_action_notify_destroy); |
a58c490f JG |
47 | end: |
48 | return ¬ify->parent; | |
49 | } | |
869a3c2d SM |
50 | |
51 | ssize_t lttng_action_notify_create_from_buffer( | |
52 | const struct lttng_buffer_view *view, | |
53 | struct lttng_action **action) | |
54 | { | |
55 | ssize_t consumed_length; | |
56 | ||
57 | *action = lttng_action_notify_create(); | |
58 | if (!*action) { | |
59 | consumed_length = -1; | |
60 | goto end; | |
61 | } | |
62 | ||
63 | consumed_length = 0; | |
64 | end: | |
65 | return consumed_length; | |
66 | } |