BUS_RELEASE_RESOURCE(9)

名称
bus_release_resource - バス上の資源の解放

書式
<sys/param.h> <sys/bus.h>

<machine/bus.h> <sys/rman.h> <machine/resource.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 は、資源の資源識別子です。 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);
    	/* 入出力ポートの資源の解放 */
    	bus_release_resource(dev, SYS_RES_IOPORT, foosoftc->portid,
    		foosoftc->portres);

関連項目
bus_alloc_resource(9), device(9), driver(9)

作者
このマニュアルページは Alexander Langer <alex@big.endian.de> が書きました。