mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 20:45:20 +07:00
ba95c74524
Add a new "bpftool prog run" subcommand to run a loaded program on input data (and possibly with input context) passed by the user. Print output data (and output context if relevant) into a file or into the console. Print return value and duration for the test run into the console. A "repeat" argument can be passed to run the program several times in a row. The command does not perform any kind of verification based on program type (Is this program type allowed to use an input context?) or on data consistency (Can I work with empty input data?), this is left to the kernel. Example invocation: # perl -e 'print "\x0" x 14' | ./bpftool prog run \ pinned /sys/fs/bpf/sample_ret0 \ data_in - data_out - repeat 5 0000000 0000 0000 0000 0000 0000 0000 0000 | ........ ...... Return value: 0, duration (average): 260ns When one of data_in or ctx_in is "-", bpftool reads from standard input, in binary format. Other formats (JSON, hexdump) might be supported (via an optional command line keyword like "data_fmt_in") in the future if relevant, but this would require doing more parsing in bpftool. v2: - Fix argument names for function check_single_stdin(). (Yonghong) Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* include/linux/sizes.h
|
|
*/
|
|
#ifndef __LINUX_SIZES_H__
|
|
#define __LINUX_SIZES_H__
|
|
|
|
#include <linux/const.h>
|
|
|
|
#define SZ_1 0x00000001
|
|
#define SZ_2 0x00000002
|
|
#define SZ_4 0x00000004
|
|
#define SZ_8 0x00000008
|
|
#define SZ_16 0x00000010
|
|
#define SZ_32 0x00000020
|
|
#define SZ_64 0x00000040
|
|
#define SZ_128 0x00000080
|
|
#define SZ_256 0x00000100
|
|
#define SZ_512 0x00000200
|
|
|
|
#define SZ_1K 0x00000400
|
|
#define SZ_2K 0x00000800
|
|
#define SZ_4K 0x00001000
|
|
#define SZ_8K 0x00002000
|
|
#define SZ_16K 0x00004000
|
|
#define SZ_32K 0x00008000
|
|
#define SZ_64K 0x00010000
|
|
#define SZ_128K 0x00020000
|
|
#define SZ_256K 0x00040000
|
|
#define SZ_512K 0x00080000
|
|
|
|
#define SZ_1M 0x00100000
|
|
#define SZ_2M 0x00200000
|
|
#define SZ_4M 0x00400000
|
|
#define SZ_8M 0x00800000
|
|
#define SZ_16M 0x01000000
|
|
#define SZ_32M 0x02000000
|
|
#define SZ_64M 0x04000000
|
|
#define SZ_128M 0x08000000
|
|
#define SZ_256M 0x10000000
|
|
#define SZ_512M 0x20000000
|
|
|
|
#define SZ_1G 0x40000000
|
|
#define SZ_2G 0x80000000
|
|
|
|
#define SZ_4G _AC(0x100000000, ULL)
|
|
|
|
#endif /* __LINUX_SIZES_H__ */
|