Commit ec8213f8 authored by Puranjay Mohan's avatar Puranjay Mohan Committed by Jonathan Corbet

Core-api: Documentation: Replace deprecated :c:func: Usage

Replace :c:func: with func() as the previous usage is deprecated.
Signed-off-by: default avatarPuranjay Mohan <puranjay12@gmail.com>
Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lore.kernel.org/r/20200810183019.22170-1-puranjay12@gmail.comSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 2d88fc62
...@@ -20,48 +20,48 @@ only ID allocation, and as a result is much more memory-efficient. ...@@ -20,48 +20,48 @@ only ID allocation, and as a result is much more memory-efficient.
IDR usage IDR usage
========= =========
Start by initialising an IDR, either with :c:func:`DEFINE_IDR` Start by initialising an IDR, either with DEFINE_IDR()
for statically allocated IDRs or :c:func:`idr_init` for dynamically for statically allocated IDRs or idr_init() for dynamically
allocated IDRs. allocated IDRs.
You can call :c:func:`idr_alloc` to allocate an unused ID. Look up You can call idr_alloc() to allocate an unused ID. Look up
the pointer you associated with the ID by calling :c:func:`idr_find` the pointer you associated with the ID by calling idr_find()
and free the ID by calling :c:func:`idr_remove`. and free the ID by calling idr_remove().
If you need to change the pointer associated with an ID, you can call If you need to change the pointer associated with an ID, you can call
:c:func:`idr_replace`. One common reason to do this is to reserve an idr_replace(). One common reason to do this is to reserve an
ID by passing a ``NULL`` pointer to the allocation function; initialise the ID by passing a ``NULL`` pointer to the allocation function; initialise the
object with the reserved ID and finally insert the initialised object object with the reserved ID and finally insert the initialised object
into the IDR. into the IDR.
Some users need to allocate IDs larger than ``INT_MAX``. So far all of Some users need to allocate IDs larger than ``INT_MAX``. So far all of
these users have been content with a ``UINT_MAX`` limit, and they use these users have been content with a ``UINT_MAX`` limit, and they use
:c:func:`idr_alloc_u32`. If you need IDs that will not fit in a u32, idr_alloc_u32(). If you need IDs that will not fit in a u32,
we will work with you to address your needs. we will work with you to address your needs.
If you need to allocate IDs sequentially, you can use If you need to allocate IDs sequentially, you can use
:c:func:`idr_alloc_cyclic`. The IDR becomes less efficient when dealing idr_alloc_cyclic(). The IDR becomes less efficient when dealing
with larger IDs, so using this function comes at a slight cost. with larger IDs, so using this function comes at a slight cost.
To perform an action on all pointers used by the IDR, you can To perform an action on all pointers used by the IDR, you can
either use the callback-based :c:func:`idr_for_each` or the either use the callback-based idr_for_each() or the
iterator-style :c:func:`idr_for_each_entry`. You may need to use iterator-style idr_for_each_entry(). You may need to use
:c:func:`idr_for_each_entry_continue` to continue an iteration. You can idr_for_each_entry_continue() to continue an iteration. You can
also use :c:func:`idr_get_next` if the iterator doesn't fit your needs. also use idr_get_next() if the iterator doesn't fit your needs.
When you have finished using an IDR, you can call :c:func:`idr_destroy` When you have finished using an IDR, you can call idr_destroy()
to release the memory used by the IDR. This will not free the objects to release the memory used by the IDR. This will not free the objects
pointed to from the IDR; if you want to do that, use one of the iterators pointed to from the IDR; if you want to do that, use one of the iterators
to do it. to do it.
You can use :c:func:`idr_is_empty` to find out whether there are any You can use idr_is_empty() to find out whether there are any
IDs currently allocated. IDs currently allocated.
If you need to take a lock while allocating a new ID from the IDR, If you need to take a lock while allocating a new ID from the IDR,
you may need to pass a restrictive set of GFP flags, which can lead you may need to pass a restrictive set of GFP flags, which can lead
to the IDR being unable to allocate memory. To work around this, to the IDR being unable to allocate memory. To work around this,
you can call :c:func:`idr_preload` before taking the lock, and then you can call idr_preload() before taking the lock, and then
:c:func:`idr_preload_end` after the allocation. idr_preload_end() after the allocation.
.. kernel-doc:: include/linux/idr.h .. kernel-doc:: include/linux/idr.h
:doc: idr sync :doc: idr sync
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment