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