summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMatthew N. Dodd <mdodd@FreeBSD.org>2002-03-29 06:42:54 +0000
committerMatthew N. Dodd <mdodd@FreeBSD.org>2002-03-29 06:42:54 +0000
commit32bc1098b23e9733a33c1d12988e7cf215667ca8 (patch)
tree093a1e4a8cb91e8fdf129c9fd598de1e29ff3876 /sys
parent9954794b0c962336ce00855486b1d596ea055898 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_bus.c13
-rw-r--r--sys/sys/bus.h4
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 138b22077d12..7026ae57f578 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -1136,6 +1136,19 @@ resource_list_free(struct resource_list *rl)
}
}
+int
+resource_list_add_next(struct resource_list *rl, int type,
+ u_long start, u_long end, u_long count)
+{
+ int rid;
+
+ rid = 0;
+ while (resource_list_find(rl, type, rid)) rid++;
+ resource_list_add(rl, type, rid, start, end, count);
+
+ return (rid);
+}
+
void
resource_list_add(struct resource_list *rl, int type, int rid,
u_long start, u_long end, u_long count)
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index f5d5d6f173c0..47bea4cf31ba 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -143,6 +143,10 @@ void resource_list_free(struct resource_list *rl);
void resource_list_add(struct resource_list *rl,
int type, int rid,
u_long start, u_long end, u_long count);
+int resource_list_add_next(struct resource_list *rl,
+ int type,
+ u_long start, u_long end, u_long count);
+
/*
* Find a resource entry by type and rid.