1

関数は次のようになります。

  struct net_device_stats* (*get_stats)(struct net_device *dev);

コードでこの関数を呼び出して、net_device_stats前に宣言した構造体で結果を取得するだけです。誰でも簡単な実装コードを提供できますか?

4

1 に答える 1

3

これは関数ではありません。構造体へのポインターを受け取り、型の構造体へのポインターを返す関数を指す関数ポインター の宣言です。get_statsnet_devicenet_device_stats

ここに1つのユースケースがあります

struct net_device *dev;
struct net_device_stats *device;

device = get_stats(dev);

編集コメントから、古いバージョンのカーネルを使用していることがわかります。後のカーネルでは、構造体net_deviceはまだ存在しますが、関数ポインターlinux/netdevice.hはありません。get_statsに変更されndo_get_stats、現在は別の構造になっていますnet_device_ops

これらの新しい関数ポインタを使い始めてください。

于 2012-04-09T09:10:31.883 に答える