亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? appldata_net_sum.c

?? 底層驅動開發
?? C
字號:
/* * arch/s390/appldata/appldata_net_sum.c * * Data gathering module for Linux-VM Monitor Stream, Stage 1. * Collects accumulated network statistics (Packets received/transmitted, * dropped, errors, ...). * * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. * * Author: Gerald Schaefer <geraldsc@de.ibm.com> */#include <linux/config.h>#include <linux/module.h>#include <linux/init.h>#include <linux/slab.h>#include <linux/errno.h>#include <linux/kernel_stat.h>#include <linux/netdevice.h>#include "appldata.h"#define MY_PRINT_NAME	"appldata_net_sum"	/* for debug messages, etc. *//* * Network data * * This is accessed as binary data by z/VM. If changes to it can't be avoided, * the structure version (product ID, see appldata_base.c) needs to be changed * as well and all documentation and z/VM applications using it must be updated. * * The record layout is documented in the Linux for zSeries Device Drivers * book: * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml */struct appldata_net_sum_data {	u64 timestamp;	u32 sync_count_1;	/* after VM collected the record data, */	u32 sync_count_2;	/* sync_count_1 and sync_count_2 should be the				   same. If not, the record has been updated on				   the Linux side while VM was collecting the				   (possibly corrupt) data */	u32 nr_interfaces;	/* nr. of network interfaces being monitored */	u32 padding;		/* next value is 64-bit aligned, so these */				/* 4 byte would be padded out by compiler */	u64 rx_packets;		/* total packets received        */	u64 tx_packets;		/* total packets transmitted     */	u64 rx_bytes;		/* total bytes received          */	u64 tx_bytes;		/* total bytes transmitted       */	u64 rx_errors;		/* bad packets received          */	u64 tx_errors;		/* packet transmit problems      */	u64 rx_dropped;		/* no space in linux buffers     */	u64 tx_dropped;		/* no space available in linux   */	u64 collisions;		/* collisions while transmitting */} __attribute__((packed)) appldata_net_sum_data;static inline void appldata_print_debug(struct appldata_net_sum_data *net_data){	P_DEBUG("--- NET - RECORD ---\n");	P_DEBUG("nr_interfaces = %u\n", net_data->nr_interfaces);	P_DEBUG("rx_packets    = %8lu\n", net_data->rx_packets);	P_DEBUG("tx_packets    = %8lu\n", net_data->tx_packets);	P_DEBUG("rx_bytes      = %8lu\n", net_data->rx_bytes);	P_DEBUG("tx_bytes      = %8lu\n", net_data->tx_bytes);	P_DEBUG("rx_errors     = %8lu\n", net_data->rx_errors);	P_DEBUG("tx_errors     = %8lu\n", net_data->tx_errors);	P_DEBUG("rx_dropped    = %8lu\n", net_data->rx_dropped);	P_DEBUG("tx_dropped    = %8lu\n", net_data->tx_dropped);	P_DEBUG("collisions    = %8lu\n", net_data->collisions);	P_DEBUG("sync_count_1 = %u\n", net_data->sync_count_1);	P_DEBUG("sync_count_2 = %u\n", net_data->sync_count_2);	P_DEBUG("timestamp    = %lX\n", net_data->timestamp);}/* * appldata_get_net_sum_data() * * gather accumulated network statistics */static void appldata_get_net_sum_data(void *data){	int i;	struct appldata_net_sum_data *net_data;	struct net_device *dev;	struct net_device_stats *stats;	unsigned long rx_packets, tx_packets, rx_bytes, tx_bytes, rx_errors,			tx_errors, rx_dropped, tx_dropped, collisions;	net_data = data;	net_data->sync_count_1++;	i = 0;	rx_packets = 0;	tx_packets = 0;	rx_bytes   = 0;	tx_bytes   = 0;	rx_errors  = 0;	tx_errors  = 0;	rx_dropped = 0;	tx_dropped = 0;	collisions = 0;	read_lock(&dev_base_lock);	for (dev = dev_base; dev != NULL; dev = dev->next) {		if (dev->get_stats == NULL) {			continue;		}		stats = dev->get_stats(dev);		rx_packets += stats->rx_packets;		tx_packets += stats->tx_packets;		rx_bytes   += stats->rx_bytes;		tx_bytes   += stats->tx_bytes;		rx_errors  += stats->rx_errors;		tx_errors  += stats->tx_errors;		rx_dropped += stats->rx_dropped;		tx_dropped += stats->tx_dropped;		collisions += stats->collisions;		i++;	}	read_unlock(&dev_base_lock);	net_data->nr_interfaces = i;	net_data->rx_packets = rx_packets;	net_data->tx_packets = tx_packets;	net_data->rx_bytes   = rx_bytes;	net_data->tx_bytes   = tx_bytes;	net_data->rx_errors  = rx_errors;	net_data->tx_errors  = tx_errors;	net_data->rx_dropped = rx_dropped;	net_data->tx_dropped = tx_dropped;	net_data->collisions = collisions;	net_data->timestamp = get_clock();	net_data->sync_count_2++;#ifdef APPLDATA_DEBUG	appldata_print_debug(net_data);#endif}static struct appldata_ops ops = {	.ctl_nr    = CTL_APPLDATA_NET_SUM,	.name	   = "net_sum",	.record_nr = APPLDATA_RECORD_NET_SUM_ID,	.size	   = sizeof(struct appldata_net_sum_data),	.callback  = &appldata_get_net_sum_data,	.data      = &appldata_net_sum_data,	.owner     = THIS_MODULE,};/* * appldata_net_init() * * init data, register ops */static int __init appldata_net_init(void){	int rc;	P_DEBUG("sizeof(net) = %lu\n", sizeof(struct appldata_net_sum_data));	rc = appldata_register_ops(&ops);	if (rc != 0) {		P_ERROR("Error registering ops, rc = %i\n", rc);	} else {		P_DEBUG("%s-ops registered!\n", ops.name);	}	return rc;}/* * appldata_net_exit() * * unregister ops */static void __exit appldata_net_exit(void){	appldata_unregister_ops(&ops);	P_DEBUG("%s-ops unregistered!\n", ops.name);}module_init(appldata_net_init);module_exit(appldata_net_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("Gerald Schaefer");MODULE_DESCRIPTION("Linux-VM Monitor Stream, accumulated network statistics");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品tv| 99久久综合色| 另类中文字幕网| 亚洲高清视频的网址| 亚洲午夜久久久久久久久电影网 | 99久久精品免费看国产免费软件| 奇米综合一区二区三区精品视频| 日本欧美在线观看| 韩国av一区二区三区| 国产原创一区二区三区| 国产精品一品视频| 欧美三日本三级三级在线播放| 欧美性猛交xxxxxx富婆| 欧美日韩国产首页在线观看| 日韩欧美视频在线| 国产精品人妖ts系列视频| 亚洲色欲色欲www在线观看| 亚洲成人高清在线| 久久国产精品免费| 91亚洲大成网污www| 欧美三级电影网| 久久久久久久久久久久电影| 伊人开心综合网| 另类小说图片综合网| 成人免费视频一区| 欧美久久久久久久久久| 久久精品人人做| 亚洲综合在线第一页| 国内精品久久久久影院色| 色综合天天狠狠| 日韩欧美国产一区在线观看| 国产精品成人一区二区三区夜夜夜| 亚洲综合av网| 亚洲精选在线视频| 国产精品一区二区免费不卡| 91美女在线视频| 一区二区在线观看视频| 麻豆精品一区二区三区| www.亚洲人| 久久综合久久综合久久综合| 亚洲在线中文字幕| 粉嫩av一区二区三区| 日韩一区二区麻豆国产| 1024成人网| 国产aⅴ综合色| 欧美一区二区三区的| 亚洲精品福利视频网站| 国产成人高清在线| 日韩一级精品视频在线观看| 一区二区三区国产豹纹内裤在线| 成人精品gif动图一区| 精品理论电影在线观看| 午夜亚洲国产au精品一区二区| 成人国产精品免费观看| xnxx国产精品| 久88久久88久久久| 91精品国产色综合久久不卡蜜臀 | 中文字幕久久午夜不卡| 国产中文字幕精品| 26uuu久久天堂性欧美| 蜜桃91丨九色丨蝌蚪91桃色| 欧美裸体bbwbbwbbw| 亚洲男同1069视频| 91在线一区二区| 日韩av电影一区| 欧美日韩一区二区在线观看| 一区二区免费在线| 91福利国产精品| 夜夜嗨av一区二区三区中文字幕| 91首页免费视频| 久久久精品天堂| 成人av小说网| 国产精品国产三级国产普通话三级| 粉嫩高潮美女一区二区三区| 国产精品视频第一区| 大胆欧美人体老妇| 成人免费在线播放视频| 91高清视频在线| 日韩精品欧美成人高清一区二区| 欧美精品在线视频| 久久99精品久久久久久国产越南 | 国产精品免费av| 91麻豆免费看片| 亚洲一级二级在线| 欧美精品视频www在线观看| 日本亚洲免费观看| 欧美精品一区二| a级精品国产片在线观看| 一区二区三区在线观看视频 | 精品制服美女丁香| 久久精品在这里| 色哟哟在线观看一区二区三区| 亚洲最色的网站| 91精品国产综合久久久久久久久久 | 性久久久久久久久| 精品国产一区二区精华| eeuss影院一区二区三区| 一区二区三区中文在线观看| 91精品国产91久久久久久最新毛片 | 国产原创一区二区| 亚洲欧美日韩中文字幕一区二区三区| 最新日韩在线视频| 欧美一区二区免费观在线| 国产99久久久国产精品潘金| 一区二区成人在线观看| 日韩欧美一区中文| av毛片久久久久**hd| 日本不卡免费在线视频| 国产精品美女视频| 欧美疯狂做受xxxx富婆| 成人久久久精品乱码一区二区三区| 亚洲美女免费在线| 欧美美女直播网站| 成人午夜看片网址| 蜜桃视频第一区免费观看| 亚洲视频 欧洲视频| 亚洲精品一区二区在线观看| 色欧美乱欧美15图片| 黄页网站大全一区二区| 午夜视频在线观看一区| 国产精品色呦呦| 欧美v日韩v国产v| 91福利在线观看| 国产精品亚洲一区二区三区在线| 一区二区三区成人在线视频| 中文字幕精品在线不卡| 久久亚洲捆绑美女| 91精品在线麻豆| 在线观看成人免费视频| 欧美午夜一区二区| 不卡一区二区在线| 国产麻豆午夜三级精品| 亚洲一区二区视频| 亚洲三级免费观看| 欧美国产综合一区二区| 日韩精品资源二区在线| 777午夜精品免费视频| 91亚洲精品久久久蜜桃| 成人性生交大片免费看在线播放 | 精品国产乱码久久久久久浪潮| 欧美美女喷水视频| 欧美在线观看一二区| 337p粉嫩大胆噜噜噜噜噜91av | 欧美中文字幕久久| 一本大道av伊人久久综合| 国产99久久久国产精品| 成人做爰69片免费看网站| 国产一区二区福利视频| 国产精品91一区二区| 国产精品一线二线三线精华| 国产精品中文字幕一区二区三区| 激情文学综合网| 国产美女一区二区三区| 丰满少妇在线播放bd日韩电影| 国产福利一区二区三区视频| 国产麻豆精品视频| 精品一区中文字幕| 国产91精品一区二区麻豆网站| 国产不卡免费视频| 97久久久精品综合88久久| 91女厕偷拍女厕偷拍高清| 麻豆国产精品一区二区三区 | 中文字幕一区二区三区不卡在线 | 国产亚洲欧美中文| 一区二区在线观看免费| 精品一区二区三区在线观看| 日本一区免费视频| 亚洲男同性恋视频| 午夜久久久久久电影| 日本在线不卡视频一二三区| 狠狠色丁香久久婷婷综| 国产经典欧美精品| 91浏览器打开| 欧美一卡在线观看| 国产日韩在线不卡| 一区二区三区四区蜜桃| 麻豆精品在线看| 成人网页在线观看| 欧美日韩一区视频| 国产校园另类小说区| 亚洲精品日日夜夜| 奇米精品一区二区三区在线观看| 成人精品在线视频观看| 色女孩综合影院| 欧美性淫爽ww久久久久无| 日韩一区二区三区四区| 日本一区二区三区高清不卡| 亚洲在线视频一区| 国产传媒日韩欧美成人| 欧美在线观看视频在线| 久久久久久久久97黄色工厂| 亚洲国产中文字幕在线视频综合| 精品在线一区二区| 7777精品伊人久久久大香线蕉| 日本一区二区三区在线不卡| 丝瓜av网站精品一区二区| 成人黄色免费短视频| 欧美一区二区久久| 夜夜嗨av一区二区三区四季av| 国产高清不卡二三区|