|
@@ -99,7 +99,6 @@ struct idr {
|
|
|
|
|
|
void *idr_find(struct idr *idp, int id);
|
|
|
int idr_pre_get(struct idr *idp, gfp_t gfp_mask);
|
|
|
-int idr_get_new(struct idr *idp, void *ptr, int *id);
|
|
|
int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
|
|
|
int idr_for_each(struct idr *idp,
|
|
|
int (*fn)(int id, void *p, void *data), void *data);
|
|
@@ -109,6 +108,30 @@ void idr_remove(struct idr *idp, int id);
|
|
|
void idr_destroy(struct idr *idp);
|
|
|
void idr_init(struct idr *idp);
|
|
|
|
|
|
+/**
|
|
|
+ * idr_get_new - allocate new idr entry
|
|
|
+ * @idp: idr handle
|
|
|
+ * @ptr: pointer you want associated with the id
|
|
|
+ * @id: pointer to the allocated handle
|
|
|
+ *
|
|
|
+ * Simple wrapper around idr_get_new_above() w/ @starting_id of zero.
|
|
|
+ */
|
|
|
+static inline int idr_get_new(struct idr *idp, void *ptr, int *id)
|
|
|
+{
|
|
|
+ return idr_get_new_above(idp, ptr, 0, id);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * idr_for_each_entry - iterate over an idr's elements of a given type
|
|
|
+ * @idp: idr handle
|
|
|
+ * @entry: the type * to use as cursor
|
|
|
+ * @id: id entry's key
|
|
|
+ */
|
|
|
+#define idr_for_each_entry(idp, entry, id) \
|
|
|
+ for (id = 0, entry = (typeof(entry))idr_get_next((idp), &(id)); \
|
|
|
+ entry != NULL; \
|
|
|
+ ++id, entry = (typeof(entry))idr_get_next((idp), &(id)))
|
|
|
+
|
|
|
void __idr_remove_all(struct idr *idp); /* don't use */
|
|
|
|
|
|
/**
|
|
@@ -149,7 +172,6 @@ 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);
|
|
|
-int ida_get_new(struct ida *ida, int *p_id);
|
|
|
void ida_remove(struct ida *ida, int id);
|
|
|
void ida_destroy(struct ida *ida);
|
|
|
void ida_init(struct ida *ida);
|
|
@@ -158,17 +180,18 @@ int ida_simple_get(struct ida *ida, unsigned int start, unsigned int end,
|
|
|
gfp_t gfp_mask);
|
|
|
void ida_simple_remove(struct ida *ida, unsigned int id);
|
|
|
|
|
|
-void __init idr_init_cache(void);
|
|
|
-
|
|
|
/**
|
|
|
- * idr_for_each_entry - iterate over an idr's elements of a given type
|
|
|
- * @idp: idr handle
|
|
|
- * @entry: the type * to use as cursor
|
|
|
- * @id: id entry's key
|
|
|
+ * ida_get_new - allocate new ID
|
|
|
+ * @ida: idr handle
|
|
|
+ * @p_id: pointer to the allocated handle
|
|
|
+ *
|
|
|
+ * Simple wrapper around ida_get_new_above() w/ @starting_id of zero.
|
|
|
*/
|
|
|
-#define idr_for_each_entry(idp, entry, id) \
|
|
|
- for (id = 0, entry = (typeof(entry))idr_get_next((idp), &(id)); \
|
|
|
- entry != NULL; \
|
|
|
- ++id, entry = (typeof(entry))idr_get_next((idp), &(id)))
|
|
|
+static inline int ida_get_new(struct ida *ida, int *p_id)
|
|
|
+{
|
|
|
+ return ida_get_new_above(ida, 0, p_id);
|
|
|
+}
|
|
|
+
|
|
|
+void __init idr_init_cache(void);
|
|
|
|
|
|
#endif /* __IDR_H__ */
|