162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* Copyright (c) 2021 Facebook */ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#include "vmlinux.h" 562306a36Sopenharmony_ci#include <bpf/bpf_helpers.h> 662306a36Sopenharmony_ci#include <bpf/bpf_tracing.h> 762306a36Sopenharmony_ci#include "bpf_misc.h" 862306a36Sopenharmony_ci 962306a36Sopenharmony_cichar _license[] SEC("license") = "GPL"; 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciint null_data_vprintk_ret = 0; 1262306a36Sopenharmony_ciint trace_vprintk_ret = 0; 1362306a36Sopenharmony_ciint trace_vprintk_ran = 0; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSEC("fentry/" SYS_PREFIX "sys_nanosleep") 1662306a36Sopenharmony_ciint sys_enter(void *ctx) 1762306a36Sopenharmony_ci{ 1862306a36Sopenharmony_ci static const char one[] = "1"; 1962306a36Sopenharmony_ci static const char three[] = "3"; 2062306a36Sopenharmony_ci static const char five[] = "5"; 2162306a36Sopenharmony_ci static const char seven[] = "7"; 2262306a36Sopenharmony_ci static const char nine[] = "9"; 2362306a36Sopenharmony_ci static const char f[] = "%pS\n"; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci /* runner doesn't search for \t, just ensure it compiles */ 2662306a36Sopenharmony_ci bpf_printk("\t"); 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci trace_vprintk_ret = __bpf_vprintk("%s,%d,%s,%d,%s,%d,%s,%d,%s,%d %d\n", 2962306a36Sopenharmony_ci one, 2, three, 4, five, 6, seven, 8, nine, 10, ++trace_vprintk_ran); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci /* non-NULL fmt w/ NULL data should result in error */ 3262306a36Sopenharmony_ci null_data_vprintk_ret = bpf_trace_vprintk(f, sizeof(f), NULL, 0); 3362306a36Sopenharmony_ci return 0; 3462306a36Sopenharmony_ci} 35