EN JA
BUS_RELEASE_RESOURCE(9)
BUS_RELEASE_RESOURCE(9) FreeBSD Kernel Developer's Manual BUS_RELEASE_RESOURCE(9)

名称

bus_release_resourceバスのリソースを解放する

書式

#include < sys/param.h>
#include < sys/bus.h>


#include < machine/bus.h>
#include < sys/rman.h>
#include < machine/resource.h>

int
bus_release_resource( device_t dev, int type, int rid, struct resource *r);

解説

bus_alloc_resource(9) によって割り付けられたリソースを解放します。リソースは、解放時に使用中であってはなりません、すなわち、それ以前に適切な関数 (例えば、IRQ のための bus_teardown_intr(9)) を呼び出します。
  • dev は、リソースを所有するデバイスです。
  • type は、解放されるリソースのタイプです。以前のとおり、それを割り付けたのと同じタイプでなければなりません。有効なタイプについては、 bus_alloc_resource(9) を参照してください。
  • rid は、リソースのリソース ID です。 rid 値は、 bus_alloc_resource(9) によって返されたものと同じでなければなりません。
  • r は、 struct resource へのポインタ、すなわち、 bus_alloc_resource(9) によって返される、それ自体のリソースです。

戻り値

デバイス dev に親がいないなら、 EINVAL が返され、そうでなければ、 0 が返されます。リソースを解放することができないなら、カーネルは、パニックします。

使用例

 /* IRQ を非活性化する */ 
 bus_teardown_intr(dev, foosoftc->irqres, foosoftc->irqid); 
 
 /* IRQ リソースを解放する */ 
 bus_release_resource(dev, SYS_RES_IRQ, foosoftc->irqid, 
  foosoftc->irqres); 
 
 /* I/O ポートのリソースを解放する */ 
 bus_release_resource(dev, SYS_RES_IOPORT, foosoftc->portid, 
  foosoftc->portres);

作者

このマニュアルページは、 Alexander Langer <alex@big.endian.de>によって書かれました。
May 18, 2000 FreeBSD