aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2019-03-13 18:02:47 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2019-03-13 18:02:47 +0000
commit839b4bf24dac7dd0da0ea586321589b64cbedd95 (patch)
treeb2ed8382b2eaf7b084c00923fd841f4f39329fb8
parent8b2a8a4954503dc8a5f518bf0f243a948a415d50 (diff)
Notes
-rw-r--r--sys/compat/linuxkpi/common/include/linux/idr.h8
-rw-r--r--sys/compat/linuxkpi/common/src/linux_idr.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/idr.h b/sys/compat/linuxkpi/common/include/linux/idr.h
index 51219087cb98..1985ec66ec2d 100644
--- a/sys/compat/linuxkpi/common/include/linux/idr.h
+++ b/sys/compat/linuxkpi/common/include/linux/idr.h
@@ -112,6 +112,7 @@ struct ida {
int ida_pre_get(struct ida *ida, gfp_t gfp_mask);
int ida_get_new_above(struct ida *ida, int starting_id, int *p_id);
void ida_remove(struct ida *ida, int id);
+void ida_free(struct ida *ida, int id);
void ida_destroy(struct ida *ida);
void ida_init(struct ida *ida);
@@ -126,6 +127,13 @@ ida_get_new(struct ida *ida, int *p_id)
return (ida_get_new_above(ida, 0, p_id));
}
+static inline int
+ida_alloc_max(struct ida *ida, unsigned int max, gfp_t gfp)
+{
+
+ return (ida_simple_get(ida, 0, max, gfp));
+}
+
static inline bool
ida_is_empty(struct ida *ida)
{
diff --git a/sys/compat/linuxkpi/common/src/linux_idr.c b/sys/compat/linuxkpi/common/src/linux_idr.c
index 773ebd3b8410..4508cbdeb7f0 100644
--- a/sys/compat/linuxkpi/common/src/linux_idr.c
+++ b/sys/compat/linuxkpi/common/src/linux_idr.c
@@ -797,6 +797,13 @@ ida_remove(struct ida *ida, int id)
}
void
+ida_free(struct ida *ida, int id)
+{
+
+ ida_remove(ida, id);
+}
+
+void
ida_init(struct ida *ida)
{
idr_init(&ida->idr);