総合手引 | セクション 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.
“ | Do you laugh when the waiter drops a tray full of dishes? Unix weenies do. They're the first ones to laugh at hapless users, trying to figure out an error message that doesn't have anything to do with what they just typed. | ” |
— The Unix Haters' handbook |