|
@@ -219,6 +219,29 @@ static inline u64 snmp_fold_field64(void __percpu *mib, int offt, size_t syncp_o
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#define snmp_get_cpu_field64_batch(buff64, stats_list, mib_statistic, offset) \
|
|
|
|
+{ \
|
|
|
|
+ int i, c; \
|
|
|
|
+ for_each_possible_cpu(c) { \
|
|
|
|
+ for (i = 0; stats_list[i].name; i++) \
|
|
|
|
+ buff64[i] += snmp_get_cpu_field64( \
|
|
|
|
+ mib_statistic, \
|
|
|
|
+ c, stats_list[i].entry, \
|
|
|
|
+ offset); \
|
|
|
|
+ } \
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define snmp_get_cpu_field_batch(buff, stats_list, mib_statistic) \
|
|
|
|
+{ \
|
|
|
|
+ int i, c; \
|
|
|
|
+ for_each_possible_cpu(c) { \
|
|
|
|
+ for (i = 0; stats_list[i].name; i++) \
|
|
|
|
+ buff[i] += snmp_get_cpu_field( \
|
|
|
|
+ mib_statistic, \
|
|
|
|
+ c, stats_list[i].entry); \
|
|
|
|
+ } \
|
|
|
|
+}
|
|
|
|
+
|
|
void inet_get_local_port_range(struct net *net, int *low, int *high);
|
|
void inet_get_local_port_range(struct net *net, int *low, int *high);
|
|
|
|
|
|
#ifdef CONFIG_SYSCTL
|
|
#ifdef CONFIG_SYSCTL
|