selftests/bpf: Fix erroneous bitmask operation
[platform/kernel/linux-rpi.git] / tools / testing / selftests / bpf / progs / test_endian.c
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
24 SEC("raw_tp/sys_enter")
25 int 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
37 char _license[] SEC("license") = "GPL";