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 TEP_PLUGIN_LOADER(struct tep_handle *tep) 29{ 30 tep_register_print_function(tep, 31 process___le16_to_cpup, 32 TEP_FUNC_ARG_INT, 33 "__le16_to_cpup", 34 TEP_FUNC_ARG_PTR, 35 TEP_FUNC_ARG_VOID); 36 return 0; 37} 38 39void TEP_PLUGIN_UNLOADER(struct tep_handle *tep) 40{ 41 tep_unregister_print_function(tep, process___le16_to_cpup, 42 "__le16_to_cpup"); 43} 44