From a404b5c683f61145c45d4eff583ed72f34d0db29 Mon Sep 17 00:00:00 2001 From: imp Date: Tue, 12 Apr 2005 15:20:36 +0000 Subject: resource_list_purge: release the resources in this list, and purge the elements of this list (eg, reset it). Man page to follow --- sys/kern/subr_bus.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'sys/kern') diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index c08d66b..531eaf9 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -2805,6 +2805,27 @@ resource_list_print_type(struct resource_list *rl, const char *name, int type, } /** + * @brief Releases all the resources in a list. + * + * @param rl The resource list to purge. + * + * @returns nothing + */ +void +resource_list_purge(struct resource_list *rl) +{ + struct resource_list_entry *rle; + + STAILQ_FOREACH(rle, rl, link) { + if (rle->res) + bus_release_resource(rman_get_device(rle->res), + rle->type, rle->rid, rle->res); + STAILQ_REMOVE_HEAD(rl, link); + free(rle, M_BUS); + } +} + +/** * @brief Helper function for implementing DEVICE_PROBE() * * This function can be used to help implement the DEVICE_PROBE() for -- cgit v1.1