hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/include/net/compat.h
....@@ -30,8 +30,23 @@
3030 compat_int_t cmsg_type;
3131 };
3232
33
-int compat_sock_get_timestamp(struct sock *, struct timeval __user *);
34
-int compat_sock_get_timestampns(struct sock *, struct timespec __user *);
33
+struct compat_rtentry {
34
+ u32 rt_pad1;
35
+ struct sockaddr rt_dst; /* target address */
36
+ struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */
37
+ struct sockaddr rt_genmask; /* target network mask (IP) */
38
+ unsigned short rt_flags;
39
+ short rt_pad2;
40
+ u32 rt_pad3;
41
+ unsigned char rt_tos;
42
+ unsigned char rt_class;
43
+ short rt_pad4;
44
+ short rt_metric; /* +1 for binary compatibility! */
45
+ compat_uptr_t rt_dev; /* forcing the device at add */
46
+ u32 rt_mtu; /* per route MTU/Window */
47
+ u32 rt_window; /* Window clamping */
48
+ unsigned short rt_irtt; /* Initial RTT */
49
+};
3550
3651 #else /* defined(CONFIG_COMPAT) */
3752 /*
....@@ -41,19 +56,38 @@
4156 #define compat_mmsghdr mmsghdr
4257 #endif /* defined(CONFIG_COMPAT) */
4358
59
+int __get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg,
60
+ struct sockaddr __user **save_addr, compat_uptr_t *ptr,
61
+ compat_size_t *len);
4462 int get_compat_msghdr(struct msghdr *, struct compat_msghdr __user *,
4563 struct sockaddr __user **, struct iovec **);
46
-struct sock_fprog __user *get_compat_bpf_fprog(char __user *optval);
4764 int put_cmsg_compat(struct msghdr*, int, int, int, void *);
4865
4966 int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *,
5067 unsigned char *, int);
5168
52
-int compat_mc_setsockopt(struct sock *, int, int, char __user *, unsigned int,
53
- int (*)(struct sock *, int, int, char __user *,
54
- unsigned int));
55
-int compat_mc_getsockopt(struct sock *, int, int, char __user *, int __user *,
56
- int (*)(struct sock *, int, int, char __user *,
57
- int __user *));
69
+struct compat_group_req {
70
+ __u32 gr_interface;
71
+ struct __kernel_sockaddr_storage gr_group
72
+ __aligned(4);
73
+} __packed;
74
+
75
+struct compat_group_source_req {
76
+ __u32 gsr_interface;
77
+ struct __kernel_sockaddr_storage gsr_group
78
+ __aligned(4);
79
+ struct __kernel_sockaddr_storage gsr_source
80
+ __aligned(4);
81
+} __packed;
82
+
83
+struct compat_group_filter {
84
+ __u32 gf_interface;
85
+ struct __kernel_sockaddr_storage gf_group
86
+ __aligned(4);
87
+ __u32 gf_fmode;
88
+ __u32 gf_numsrc;
89
+ struct __kernel_sockaddr_storage gf_slist[1]
90
+ __aligned(4);
91
+} __packed;
5892
5993 #endif /* NET_COMPAT_H */