BPF_F_RDONLY
#define BPF_F_ACCESS_MASK (BPF_F_RDONLY | \
(BPF_F_NUMA_NODE | BPF_F_RDONLY | BPF_F_WRONLY)
(BPF_F_NUMA_NODE | BPF_F_RDONLY | BPF_F_WRONLY | \
if ((flags & BPF_F_RDONLY) && (flags & BPF_F_WRONLY))
if (flags & BPF_F_RDONLY)
return flags & ~(BPF_F_RDONLY | BPF_F_WRONLY);
#define BPF_OBJ_FLAG_MASK (BPF_F_RDONLY | BPF_F_WRONLY)
(BPF_F_NUMA_NODE | BPF_F_RDONLY | BPF_F_WRONLY)
attr->map_flags & ~(BPF_F_NUMA_NODE | BPF_F_RDONLY | BPF_F_WRONLY))
opts_ro.open_flags = BPF_F_RDONLY;
BPF_F_RDONLY);
assert((open_flags & ~BPF_F_RDONLY) == 0);
opts_ro.open_flags = BPF_F_RDONLY;
map_fd = map_parse_fd(&argc, &argv, BPF_F_RDONLY);
fd = map_parse_fd_and_info(&argc, &argv, &info, &len, BPF_F_RDONLY);
BPF_F_RDONLY);
fd = map_parse_fd_and_info(&argc, &argv, &info, &len, BPF_F_RDONLY);
NULL, BPF_F_RDONLY);
return map_parse_fd(argc, argv, BPF_F_RDONLY);
&info, &len, BPF_F_RDONLY);
nb_fds = map_parse_fds(&argc, &argv, &fds, BPF_F_RDONLY);
opts.open_flags = BPF_F_RDONLY;
nb_fds = map_parse_fds(&argc, &argv, &fds, BPF_F_RDONLY);
.open_flags = BPF_F_RDONLY,
map_opts.map_flags |= BPF_F_RDONLY;