Lines Matching full:d
24 gnet_stats_copy(struct gnet_dump *d, int type, void *buf, int size, int padattr) in gnet_stats_copy() argument
26 if (nla_put_64bit(d->skb, type, size, buf, padattr)) in gnet_stats_copy()
31 if (d->lock) in gnet_stats_copy()
32 spin_unlock_bh(d->lock); in gnet_stats_copy()
33 kfree(d->xstats); in gnet_stats_copy()
34 d->xstats = NULL; in gnet_stats_copy()
35 d->xstats_len = 0; in gnet_stats_copy()
46 * @d: dumping handle
61 struct gnet_dump *d, int padattr) in gnet_stats_start_copy_compat() argument
64 memset(d, 0, sizeof(*d)); in gnet_stats_start_copy_compat()
67 d->tail = (struct nlattr *)skb_tail_pointer(skb); in gnet_stats_start_copy_compat()
68 d->skb = skb; in gnet_stats_start_copy_compat()
69 d->compat_tc_stats = tc_stats_type; in gnet_stats_start_copy_compat()
70 d->compat_xstats = xstats_type; in gnet_stats_start_copy_compat()
71 d->padattr = padattr; in gnet_stats_start_copy_compat()
73 d->lock = lock; in gnet_stats_start_copy_compat()
76 if (d->tail) { in gnet_stats_start_copy_compat()
77 int ret = gnet_stats_copy(d, type, NULL, 0, padattr); in gnet_stats_start_copy_compat()
80 * preceded by a padding attribute, in which case d->tail will in gnet_stats_start_copy_compat()
85 if (ret == 0 && d->tail->nla_type == padattr) in gnet_stats_start_copy_compat()
86 d->tail = (struct nlattr *)((char *)d->tail + in gnet_stats_start_copy_compat()
87 NLA_ALIGN(d->tail->nla_len)); in gnet_stats_start_copy_compat()
100 * @d: dumping handle
111 struct gnet_dump *d, int padattr) in gnet_stats_start_copy() argument
113 return gnet_stats_start_copy_compat(skb, type, 0, 0, lock, d, padattr); in gnet_stats_start_copy()
162 struct gnet_dump *d, in ___gnet_stats_copy_basic() argument
171 if (d->compat_tc_stats && type == TCA_STATS_BASIC) { in ___gnet_stats_copy_basic()
172 d->tc_stats.bytes = bstats.bytes; in ___gnet_stats_copy_basic()
173 d->tc_stats.packets = bstats.packets; in ___gnet_stats_copy_basic()
176 if (d->tail) { in ___gnet_stats_copy_basic()
183 res = gnet_stats_copy(d, type, &sb, sizeof(sb), TCA_STATS_PAD); in ___gnet_stats_copy_basic()
187 return gnet_stats_copy(d, TCA_STATS_PKT64, &bstats.packets, in ___gnet_stats_copy_basic()
196 * @d: dumping handle
208 struct gnet_dump *d, in gnet_stats_copy_basic() argument
212 return ___gnet_stats_copy_basic(running, d, cpu, b, in gnet_stats_copy_basic()
220 * @d: dumping handle
232 struct gnet_dump *d, in gnet_stats_copy_basic_hw() argument
236 return ___gnet_stats_copy_basic(running, d, cpu, b, in gnet_stats_copy_basic_hw()
243 * @d: dumping handle
253 gnet_stats_copy_rate_est(struct gnet_dump *d, in gnet_stats_copy_rate_est() argument
266 if (d->compat_tc_stats) { in gnet_stats_copy_rate_est()
267 d->tc_stats.bps = est.bps; in gnet_stats_copy_rate_est()
268 d->tc_stats.pps = est.pps; in gnet_stats_copy_rate_est()
271 if (d->tail) { in gnet_stats_copy_rate_est()
272 res = gnet_stats_copy(d, TCA_STATS_RATE_EST, &est, sizeof(est), in gnet_stats_copy_rate_est()
277 return gnet_stats_copy(d, TCA_STATS_RATE_EST64, &sample, in gnet_stats_copy_rate_est()
323 * @d: dumping handle
336 gnet_stats_copy_queue(struct gnet_dump *d, in gnet_stats_copy_queue() argument
344 if (d->compat_tc_stats) { in gnet_stats_copy_queue()
345 d->tc_stats.drops = qstats.drops; in gnet_stats_copy_queue()
346 d->tc_stats.qlen = qstats.qlen; in gnet_stats_copy_queue()
347 d->tc_stats.backlog = qstats.backlog; in gnet_stats_copy_queue()
348 d->tc_stats.overlimits = qstats.overlimits; in gnet_stats_copy_queue()
351 if (d->tail) in gnet_stats_copy_queue()
352 return gnet_stats_copy(d, TCA_STATS_QUEUE, in gnet_stats_copy_queue()
362 * @d: dumping handle
374 gnet_stats_copy_app(struct gnet_dump *d, void *st, int len) in gnet_stats_copy_app() argument
376 if (d->compat_xstats) { in gnet_stats_copy_app()
377 d->xstats = kmemdup(st, len, GFP_ATOMIC); in gnet_stats_copy_app()
378 if (!d->xstats) in gnet_stats_copy_app()
380 d->xstats_len = len; in gnet_stats_copy_app()
383 if (d->tail) in gnet_stats_copy_app()
384 return gnet_stats_copy(d, TCA_STATS_APP, st, len, in gnet_stats_copy_app()
390 if (d->lock) in gnet_stats_copy_app()
391 spin_unlock_bh(d->lock); in gnet_stats_copy_app()
392 d->xstats_len = 0; in gnet_stats_copy_app()
399 * @d: dumping handle
410 gnet_stats_finish_copy(struct gnet_dump *d) in gnet_stats_finish_copy() argument
412 if (d->tail) in gnet_stats_finish_copy()
413 d->tail->nla_len = skb_tail_pointer(d->skb) - (u8 *)d->tail; in gnet_stats_finish_copy()
415 if (d->compat_tc_stats) in gnet_stats_finish_copy()
416 if (gnet_stats_copy(d, d->compat_tc_stats, &d->tc_stats, in gnet_stats_finish_copy()
417 sizeof(d->tc_stats), d->padattr) < 0) in gnet_stats_finish_copy()
420 if (d->compat_xstats && d->xstats) { in gnet_stats_finish_copy()
421 if (gnet_stats_copy(d, d->compat_xstats, d->xstats, in gnet_stats_finish_copy()
422 d->xstats_len, d->padattr) < 0) in gnet_stats_finish_copy()
426 if (d->lock) in gnet_stats_finish_copy()
427 spin_unlock_bh(d->lock); in gnet_stats_finish_copy()
428 kfree(d->xstats); in gnet_stats_finish_copy()
429 d->xstats = NULL; in gnet_stats_finish_copy()
430 d->xstats_len = 0; in gnet_stats_finish_copy()