Hi Thomas,
On Thu, Mar 9, 2023 at 5:02 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
Add struct option_iter and helpers that walk over individual options
of an option string. Add documentation.
Kernel parameters often have the format of
param=opt1,opt2:val,opt3
where the option string contains a number of comma-separated options.
Drivers usually use strsep() in a loop to extract individual options
from the string. Each call to strsep() modifies the given string, so
callers have to duplicate kernel parameters that are to be parsed
multiple times.
The new struct option_iter and its helpers wrap this code behind a
clean interface. Drivers can iterate over the options without having
to know the details of the option-string format. The iterator handles
string memory internally without modifying the original options.
v2:
* improve documentation (Randy)
* implement option_iter_next() as function
* allow modification of the returned options
Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
Thanks for your patch!
I> ---
Documentation/core-api/kernel-api.rst | 9 +++
include/linux/cmdline.h | 36 +++++++++
lib/Makefile | 2 +-
lib/cmdline_iter.c | 109 ++++++++++++++++++++++++++
4 files changed, 155 insertions(+), 1 deletion(-)
create mode 100644 include/linux/cmdline.h
create mode 100644 lib/cmdline_iter.c
Just wondering, is there any code that can be shared with/reused from
the existing lib/cmdline.c?
Gr{oetje,eeting}s,
Geert
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature