0

私のLinuxネットワークアプリケーションでは、lincap.cを参照し、リングバッファを介してイーサネットパケットを受信するPACKET_MMAPメソッドを使用する方法を理解しています。

lincap.cは、mb()asm/system.hで定義されているメモリバリアマクロを使用します。ただし、そのヘッダーファイルのコードは。に含まれてい#ifdef __KERNEL__ます。それはカーネルヘッダーファイルだと思います。mb()ユーザースペースアプリケーション(lincap.cはそうだと思います)からどのように使用できますか?

BR

デビッド

4

1 に答える 1

0

おそらく、__sync_synchronize組み込みのgccが提供するものを使用できます。まったく同じコードが生成されるかどうかはわかりませんが、実質的には十分に類似しているはずです。したがって、それに対するエイリアスとして定義するだけで機能するmbはずです。

于 2012-11-01T01:06:15.277 に答える