1#include <stdio.h> 2#include <string.h> 3#include <inttypes.h> 4#include <endian.h> 5#include "event-parse.h" 6 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 20static unsigned long long 21process___le16_to_cpup(struct trace_seq *s, unsigned long long *args) 22{ 23 uint16_t *val = (uint16_t *) (unsigned long) args[0]; 24 return val ? (long long) le16toh(*val) : 0; 25} 26 27int 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} 37 38void PEVENT_PLUGIN_UNLOADER(struct pevent *pevent) 39{ 40 pevent_unregister_print_function(pevent, process___le16_to_cpup, 41 "__le16_to_cpup"); 42} 43