BUS_ADJUST_RESOURCE(9) | FreeBSD Kernel Developer's Manual | BUS_ADJUST_RESOURCE(9) |
名称
bus_adjust_resource — 親のバスから割り付けられたリソースを調整する書式
#include < sys/param.h>#include < sys/bus.h>
#include < machine/bus.h>
#include < sys/rman.h>
#include < machine/resource.h>
int
bus_adjust_resource( device_t dev, int type, struct resource *r, u_long start, u_long end);
解説
この関数は、割り付けられたリソースに割り当てられたリソースの範囲を調整するように親のバスに依頼するために使用されます。リソース r は、 bus_alloc_resource(9) の前の呼び出しによって割り付けられるべきす。新しいリソースの範囲は、 r の既存の範囲とオーバラップしなければなりません。 type 引数は、リソースが最初に割り付けられたとき、 bus_alloc_resource(9) に渡された type 引数とマッチするべきです。整列または境界制限が bus_adjust_resource() によってチェックされないように、オリジナルの割り付け要求の制約がないことに注意してください。そのような必要条件を実行することは、呼び出し側の責任です。
戻り値
bus_adjust_resource() メソッドは、成功すれば、0 を、失敗すればエラーコードを返します。使用例
既存のメモリリソースを 4096 バイト大きくします。
struct resource *res; int error; error = bus_adjust_resource(dev, SYS_RES_MEMORY, res, rman_get_start(res), rman_get_end(res) + 0x1000);
エラー
bus_adjust_resource() は、次の場合に失敗します:- [ EINVAL]
- dev デバイスには、親デバイスがありません。
- [ EINVAL]
- r リソースが共用リソースです。
- [ EINVAL]
- 新しいアドレスの範囲が r の既存のアドレスとオーバラップしません。
- [ EBUSY]
- 新しいアドレスの範囲が別の割り付けられたリソースと競合します。
April 29, 2011 | FreeBSD |