2 * Copyright (c) 2015-2018 Dmitry V. Levin <ldv@altlinux.org>
5 * SPDX-License-Identifier: LGPL-2.1-or-later
10 #include DEF_MPERS_TYPE(struct_sock_fprog)
12 #include <linux/filter.h>
13 typedef struct sock_fprog struct_sock_fprog;
16 #include "bpf_fprog.h"
18 MPERS_PRINTER_DECL(unsigned int, get_sock_fprog_size, void)
20 return sizeof(struct_sock_fprog);
23 MPERS_PRINTER_DECL(bool, fetch_bpf_fprog, struct tcb *const tcp,
24 const kernel_ulong_t addr, void *const p)
26 struct bpf_fprog *pfp = p;
27 struct_sock_fprog mfp;
29 if ((sizeof(*pfp) == sizeof(mfp))
30 && (offsetof(struct bpf_fprog, filter) ==
31 offsetof(struct_sock_fprog, filter)))
32 return !umove_or_printaddr(tcp, addr, pfp);
34 if (umove_or_printaddr(tcp, addr, &mfp))