18c183110SAndrii Nakryiko // SPDX-License-Identifier: GPL-2.0
28c183110SAndrii Nakryiko /* Copyright (c) 2020 Facebook */
38c183110SAndrii Nakryiko 
48c183110SAndrii Nakryiko #include "vmlinux.h"
58c183110SAndrii Nakryiko #include <bpf/bpf_helpers.h>
68c183110SAndrii Nakryiko #include <bpf/bpf_endian.h>
78c183110SAndrii Nakryiko 
88c183110SAndrii Nakryiko #define IN16 0x1234
98c183110SAndrii Nakryiko #define IN32 0x12345678U
108c183110SAndrii Nakryiko #define IN64 0x123456789abcdef0ULL
118c183110SAndrii Nakryiko 
128c183110SAndrii Nakryiko __u16 in16 = 0;
138c183110SAndrii Nakryiko __u32 in32 = 0;
148c183110SAndrii Nakryiko __u64 in64 = 0;
158c183110SAndrii Nakryiko 
168c183110SAndrii Nakryiko __u16 out16 = 0;
178c183110SAndrii Nakryiko __u32 out32 = 0;
188c183110SAndrii Nakryiko __u64 out64 = 0;
198c183110SAndrii Nakryiko 
208c183110SAndrii Nakryiko __u16 const16 = 0;
218c183110SAndrii Nakryiko __u32 const32 = 0;
228c183110SAndrii Nakryiko __u64 const64 = 0;
238c183110SAndrii Nakryiko 
248c183110SAndrii Nakryiko SEC("raw_tp/sys_enter")
sys_enter(const void * ctx)258c183110SAndrii Nakryiko int sys_enter(const void *ctx)
268c183110SAndrii Nakryiko {
278c183110SAndrii Nakryiko 	out16 = __builtin_bswap16(in16);
288c183110SAndrii Nakryiko 	out32 = __builtin_bswap32(in32);
298c183110SAndrii Nakryiko 	out64 = __builtin_bswap64(in64);
308c183110SAndrii Nakryiko 	const16 = ___bpf_swab16(IN16);
318c183110SAndrii Nakryiko 	const32 = ___bpf_swab32(IN32);
328c183110SAndrii Nakryiko 	const64 = ___bpf_swab64(IN64);
338c183110SAndrii Nakryiko 
348c183110SAndrii Nakryiko 	return 0;
358c183110SAndrii Nakryiko }
368c183110SAndrii Nakryiko 
378c183110SAndrii Nakryiko char _license[] SEC("license") = "GPL";
38