This commit introduces a rewrite of `lib/uklibparam`. The rewrite ensures
that it is errno-free, malloc-free, and TLS-free. This makes it ideal for
processing library parameters early during boot. It includes an own and
modified version of `strtoull` function that is used for parsing integer
values from the command line.
Additionally, the parser can handle arrays more intuitively (and for any
data type of the elements) while fully utilizing pre-processed argument
vectors. It relies on the fact that whitespacing and quoting is already
handled (e.g., by `lib/ukargparse`). There are new types that are more
inline with the ones defined by ukstore.
This rewrite introduces the ability to provide a parameter description
with updated parameter registration macros:
UK_LIBPARAM_PARAM(variable, type, description)
UK_LIBPARAM_PARAM_ARR(variable, type, count, description)
The description is printed on the help output.
The previous interfaces are kept for backwards compatibility. However,
it is planned to remove them as soon as the code base is completely
adopted.
Checkpatch-Ignore: SPACING
Checkpatch-Ignore: OPEN_BRACE
Checkpatch-Ignore: MACRO_WITH_FLOW_CONTROL Signed-off-by: Simon Kuenzer <simon@unikraft.io> Reviewed-by: Delia Pavel <delia_maria.pavel@stud.acs.upb.ro> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #868