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