linux/tools/lib/traceevent/plugin_cfg80211.c
<<
>>
Prefs
   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