総合手引 | セクション 9 | English | オプション |
#include <sys/param.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <sys/rman.h>
#include <machine/resource.h>
bus_alloc_resource_any() 関数は bus_alloc_resource() のための簡単なラッパです。 これは start, end および count の値としてデフォルトのリソース (下記の start の解説を参照してください) を設定します。
引数は以下の通りです。
dev は、資源の所有を要求するデバイスです。 割り当て前は、資源は親のバスによって所有されています。 | |
type は、割り当てたい資源の型です。 以下の内の 1 つです。 | |
SYS_RES_IRQ | IRQ 用。 |
SYS_RES_DRQ | ISA DMA ライン用。 |
SYS_RES_IOPORT | |
入出力ポート用。 | |
SYS_RES_MEMORY | |
入出力メモリ用。 | |
rid は、割り当てている資源を識別する、バス固有のハンドルを指します。 ISA では、PnP の仕組みまたは hints の仕組みを通して、デバイスのために セットアップされている資源の配列へのインデックスです。 PCCARD では、この文章を書いている現時点では同様ですが、 将来の newcard では変わるかもしれません。 PCI では、pci コンフィグ空間において、 資源を記述するワードへのオフセットになっています。 バスのメソッドは、引数として与えられている RID を無制限に変更します。 以前に与えた時の値に依存してはなりません。 | |
start および end は資源の開始/終了アドレスです。 start に 0ul を、 end に ~0ul を、 count に 1 を指定した場合には、バスのためのデフォルト値が計算されます。 | |
count は資源の大きさです。 例えば、入出力ポートの大きさは通常 1 バイトです (しかし、 幾つかのデバイスはこれを上書きします)。 start および end にデフォルト値を指定した場合、 count がデフォルト値よりも小さいならばデフォルト値が使用され、 count がデフォルト値以上ならば count が使用されます。 | |
flags は資源のためのフラグを設定します。 以下のフラグを 1 つ以上設定できます。 | |
RF_ALLOCATED | |
資源は既に予約されています。 資源は引続き bus_activate_resource(9) で活性化される必要があります。 | |
RF_ACTIVE | 不可分に、資源を活性化します。 |
RF_SHAREABLE | |
資源は同時共有を許可します。 その資源が共有不可であることを知らない場合、常に設定されるべきです。 そのバスが共有をサポートしていない場合、 このフラグを取り除くのはバスドライバの仕事です。 例えば、 pccard(4) [英語] は IRQ を共有できませんが、一方 cardbus(4) [英語] は共有できます。 | |
RF_TIMESHARE | |
資源は時分割共有を許可します。 | |
struct resource *portres, irqres; int portid, irqid;portid = 0; irqid = 0; portres = bus_alloc_resource(dev, SYS_RES_IOPORT, &portid, 0ul, ~0ul, 32, RF_ACTIVE); irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &irqid, RF_ACTIVE | RF_SHAREABLE);
BUS_ALLOC_RESOURCE (9) | May 18, 2000 |
総合手引 | セクション 9 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | UNIX is a four-letter word! | ” |