#
7a765956 |
| 03-Feb-2025 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
config.h: Include stddef.h for size_t
Address the following clang-tidy issue:
``` Error while processing .../obmc-console/config.h. .../obmc-console/config.h:36:49: error: unknown type name 'size_t
config.h: Include stddef.h for size_t
Address the following clang-tidy issue:
``` Error while processing .../obmc-console/config.h. .../obmc-console/config.h:36:49: error: unknown type name 'size_t' [clang-diagnostic-error] 36 | int config_parse_bytesize(const char *size_str, size_t *size); | ^ ```
Fixes: 1e04f449b7f0 ("use iniparser dependency for config file parsing") Change-Id: I22adfc548d1f8837fda8920267a16e93c17c8475 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
e3a083eb |
| 08-Jul-2024 |
Alexander Hansen <alexander.hansen@9elements.com> |
config: support sections in config_ api
This commit wraps some functions from iniparser to support sections in our config files.
The new functions become part of the config_* api and will help to s
config: support sections in config_ api
This commit wraps some functions from iniparser to support sections in our config files.
The new functions become part of the config_* api and will help to support the uart mux feature.
Change-Id: I7fa9aa1d60b67458943d5c53a1aeb90406c5fcf3 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
1e04f449 |
| 12-Jun-2024 |
Alexander Hansen <alexander.hansen@9elements.com> |
use iniparser dependency for config file parsing
For the config file, we do not need the custom handwritten parser.
Thanks to Andrew for this command, we can now search for an alternative
$ git gr
use iniparser dependency for config file parsing
For the config file, we do not need the custom handwritten parser.
Thanks to Andrew for this command, we can now search for an alternative
$ git grep -lw INI -- :/:*.bb meta-openembedded/meta-oe/recipes-support/inih/libinih_58.bb meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb poky/meta/recipes-devtools/python/python3-iniconfig_2.0.0.bb poky/meta/recipes-devtools/python/python3-iniparse_0.5.bb
For the ini parser we have following requirements
- small API - easy to use - compiles fast - has tests, examples, docs - support for sections
- minini [1]
can be dropped from the list since it also supports colon ':' instead of '=' for separating key and value, creating 2 ways of doing something. This makes it harder to swap out the ini parser in the future.
- libinih [2]
uses SAX-style parsing of .ini files and thus does not provide a DOM of the .ini. This is a break from the previous parser which stored everything in struct config. To use this library would require to create a struct to store all the possible configuration, then fill that struct in one pass. Essentially wrapping that library to have DOM capability. That would be possible, but not ideal. libinih is also highly configurable with lots of config options.
- iniparser [3]
has all the required features and stores the results of its parsing for later use. It is a seamless upgrade from the previous parser. The call sites do not have to be modified and we can read the config as before. A downside is that we have to provide our own wrap file.
For our purposes, iniparser is a good choice.
Using this dependency allows us to drop the custom parser and all the tests that go along with it.
If sections are required in future config files, iniparser can also support that.
References:
[1] https://github.com/compuphase/minIni [2] https://github.com/benhoyt/inih [3] https://gitlab.com/iniparser/iniparser
Change-Id: Ie2b57171ec1f8cb6b1b80ca1d9e6c112bedc1195 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|