diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-03-13 18:02:47 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-03-13 18:02:47 +0000 |
| commit | 839b4bf24dac7dd0da0ea586321589b64cbedd95 (patch) | |
| tree | b2ed8382b2eaf7b084c00923fd841f4f39329fb8 | |
| parent | 8b2a8a4954503dc8a5f518bf0f243a948a415d50 (diff) | |
Notes
| -rw-r--r-- | sys/compat/linuxkpi/common/include/linux/idr.h | 8 | ||||
| -rw-r--r-- | sys/compat/linuxkpi/common/src/linux_idr.c | 7 |
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); |
