NAME¶
bus_release_resource
—
release resources on a bus
SYNOPSIS¶
#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);
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
struct resource, i.e., the resource
itself, returned by
bus_alloc_resource(9).
RETURN VALUES¶
EINVAL
is returned, if the device
dev has no parent,
0
otherwise. The kernel will panic, if it
cannot release the resource.
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);
SEE ALSO¶
bus_alloc_resource(9),
device(9),
driver(9)
AUTHORS¶
This manual page was written by
Alexander
Langer ⟨alex@big.endian.de⟩.