1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2020 Facebook */
3
4#include "vmlinux.h"
5#include <bpf/bpf_helpers.h>
6#include <bpf/bpf_endian.h>
7
8#define IN16 0x1234
9#define IN32 0x12345678U
10#define IN64 0x123456789abcdef0ULL
11
12__u16 in16 = 0;
13__u32 in32 = 0;
14__u64 in64 = 0;
15
16__u16 out16 = 0;
17__u32 out32 = 0;
18__u64 out64 = 0;
19
20__u16 const16 = 0;
21__u32 const32 = 0;
22__u64 const64 = 0;
23
24SEC("raw_tp/sys_enter")
25int sys_enter(const void *ctx)
26{
27 out16 = __builtin_bswap16(in16);
28 out32 = __builtin_bswap32(in32);
29 out64 = __builtin_bswap64(in64);
30 const16 = ___bpf_swab16(IN16);
31 const32 = ___bpf_swab32(IN32);
32 const64 = ___bpf_swab64(IN64);
33
34 return 0;
35}
36
37char _license[] SEC("license") = "GPL";
38

source code of linux/tools/testing/selftests/bpf/progs/test_endian.c