示例#1
0
static void
ixgb_get_ethtool_stats(struct net_device *netdev,
		struct ethtool_stats *stats, u64 *data)
{
	struct ixgb_adapter *adapter = netdev_priv(netdev);
	int i;
	char *p = NULL;

	ixgb_update_stats(adapter);
	for (i = 0; i < IXGB_STATS_LEN; i++) {
		switch (ixgb_gstrings_stats[i].type) {
		case NETDEV_STATS:
			p = (char *) netdev +
					ixgb_gstrings_stats[i].stat_offset;
			break;
		case IXGB_STATS:
			p = (char *) adapter +
					ixgb_gstrings_stats[i].stat_offset;
			break;
		}

		data[i] = (ixgb_gstrings_stats[i].sizeof_stat ==
			sizeof(u64)) ? *(u64 *)p : *(u32 *)p;
	}
}
示例#2
0
static void 
ixgb_get_ethtool_stats(struct net_device *netdev, 
        struct ethtool_stats *stats, u64 *data)
{
    struct ixgb_adapter *adapter = netdev_priv(netdev);
    int i;

    ixgb_update_stats(adapter);
    for(i = 0; i < IXGB_STATS_LEN; i++) {
        char *p = (char *)adapter+ixgb_gstrings_stats[i].stat_offset;    
        data[i] = (ixgb_gstrings_stats[i].sizeof_stat == 
            sizeof(u64)) ? *(u64 *)p : *(u32 *)p;
    }
}