bus_release_resource — release resources on a bus
Contents
Description
Free a resource allocated by bus_alloc_resource(9). The resource must not be in use on release, i.e.,
call an appropriate function before (e.g. bus_teardown_intr(9) for IRQs).
dev is the device that owns the resource.
type is the type of resource that is released. It must be of the same type you allocated it as before.
See bus_alloc_resource(9) for valid types.
rid is the resource ID of the resource. The rid value must be the same as the one returned by
bus_alloc_resource(9).
r is the pointer to structresource, i.e., the resource itself, returned by bus_alloc_resource(9).
Examples
/* deactivate IRQ */
bus_teardown_intr(dev, foosoftc->irqres, foosoftc->irqid);
/* release IRQ resource */
bus_release_resource(dev, SYS_RES_IRQ, foosoftc->irqid,
foosoftc->irqres);
/* release I/O port resource */
bus_release_resource(dev, SYS_RES_IOPORT, foosoftc->portid,
foosoftc->portres);
Name
bus_release_resource — release resources on a bus
Return Values
EINVAL is returned, if the device dev has no parent, 0 otherwise. The kernel will panic, if it cannot
release the resource.
See Also
bus_alloc_resource(9), device(9), driver(9)
Synopsis
#include<sys/param.h>#include<sys/bus.h>#include<machine/bus.h>#include<sys/rman.h>#include<machine/resource.h>intbus_release_resource(device_tdev, inttype, intrid, structresource*r);
