3

xmallocをプロセス環境で使用できるのは、AIX カーネル拡張機能を作成する場合のみです。

AIX の割り込み環境から呼び出すことができるメモリ割り当て関数は何ですか?

ありがとう。

4

1 に答える 1

2

ネットワーク メモリ割り当てルーチン。/usr/include/net/net_malloc.h を調べます。最低レベルは net_malloc と net_free です。

IBM のパブでもインターネットでも、ドキュメントはあまり見かけません。さまざまなヘッダー ファイルにいくつかの例があります。

これらのプロトタイプは公開されていません。

net_malloc.h を見ると、それを呼び出す MALLOC および NET_MALLOC マクロが定義されていることがわかります。次に、/usr/include の下にあるすべてのファイルを grep すると、これらのマクロの使用が表示されます。これらの使用法から、マクロへの引数を推測し、net_malloc 自体への引数を推測できます。インターフェイスを制御する net_malloc へのパススルーであるルーチンを 1 つ作成します。

ターゲット システムで、「netstat -m」を実行します。最後に表示されるバケット サイズは、M_NOWAIT フラグで net_malloc を呼び出すことができる最大サイズになります。M_WAIT は処理時にのみ使用でき、必要に応じて netm がより多くのメモリを割り当てるのを待ちます。十分なメモリが固定されていない場合、M_NOWAIT は 0 を返します。割り込み時には、M_NOWAIT を使用する必要があります。

「タイプ」の実際のチェックはありませんが、後でデバッグする目的で適切なタイプを選択することをお勧めします。kdb からの netm 出力にタイプが表示されます。

同様の方法で、net_free を呼び出す方法を理解できます。

残念なことに、IBM はこれを文書化しないことを選択しました。この情報を正式に入手する別の方法は、「ISV」の質問に料金を支払うことです。本格的な AIX 開発を行っている場合は、ISV / パートナーになりたいと考えています。それはあなたに多くの心の傷を救います。費用はわかりませんが、中小企業や個人でも手の届く範囲です。

このも持っていてよかったです。

于 2013-12-27T16:07:23.020 に答える