]>
Commit | Line | Data |
---|---|---|
94371473 JO |
1 | #include <stdio.h> |
2 | #include <string.h> | |
3 | #include <inttypes.h> | |
4 | #include <endian.h> | |
5 | #include "event-parse.h" | |
6 | ||
b390d850 ACM |
7 | /* |
8 | * From glibc endian.h, for older systems where it is not present, e.g.: RHEL5, | |
9 | * Fedora6. | |
10 | */ | |
11 | #ifndef le16toh | |
12 | # if __BYTE_ORDER == __LITTLE_ENDIAN | |
13 | # define le16toh(x) (x) | |
14 | # else | |
15 | # define le16toh(x) __bswap_16 (x) | |
16 | # endif | |
17 | #endif | |
18 | ||
19 | ||
94371473 | 20 | static unsigned long long |
24eda087 | 21 | process___le16_to_cpup(struct trace_seq *s, unsigned long long *args) |
94371473 | 22 | { |
0e9e79a1 | 23 | uint16_t *val = (uint16_t *) (unsigned long) args[0]; |
94371473 JO |
24 | return val ? (long long) le16toh(*val) : 0; |
25 | } | |
26 | ||
27 | int PEVENT_PLUGIN_LOADER(struct pevent *pevent) | |
28 | { | |
29 | pevent_register_print_function(pevent, | |
30 | process___le16_to_cpup, | |
31 | PEVENT_FUNC_ARG_INT, | |
32 | "__le16_to_cpup", | |
33 | PEVENT_FUNC_ARG_PTR, | |
34 | PEVENT_FUNC_ARG_VOID); | |
35 | return 0; | |
36 | } | |
6024cf38 NK |
37 | |
38 | void PEVENT_PLUGIN_UNLOADER(struct pevent *pevent) | |
39 | { | |
40 | pevent_unregister_print_function(pevent, process___le16_to_cpup, | |
41 | "__le16_to_cpup"); | |
42 | } |