Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /* Copyright (c) 2021 Facebook */
0003 
0004 #include "vmlinux.h"
0005 #include <bpf/bpf_helpers.h>
0006 #include <bpf/bpf_tracing.h>
0007 #include "bpf_misc.h"
0008 
0009 char _license[] SEC("license") = "GPL";
0010 
0011 int null_data_vprintk_ret = 0;
0012 int trace_vprintk_ret = 0;
0013 int trace_vprintk_ran = 0;
0014 
0015 SEC("fentry/" SYS_PREFIX "sys_nanosleep")
0016 int sys_enter(void *ctx)
0017 {
0018     static const char one[] = "1";
0019     static const char three[] = "3";
0020     static const char five[] = "5";
0021     static const char seven[] = "7";
0022     static const char nine[] = "9";
0023     static const char f[] = "%pS\n";
0024 
0025     /* runner doesn't search for \t, just ensure it compiles */
0026     bpf_printk("\t");
0027 
0028     trace_vprintk_ret = __bpf_vprintk("%s,%d,%s,%d,%s,%d,%s,%d,%s,%d %d\n",
0029         one, 2, three, 4, five, 6, seven, 8, nine, 10, ++trace_vprintk_ran);
0030 
0031     /* non-NULL fmt w/ NULL data should result in error */
0032     null_data_vprintk_ret = bpf_trace_vprintk(f, sizeof(f), NULL, 0);
0033     return 0;
0034 }