rte_cfgfile.h(3)

πŸ’– rte_cfgfile.h β€” the Library Functions Manual glowup πŸ’–

ok so bestie, welcome to rte_cfgfile.h(3) β€” this is the DPDK manpage for the config file library and honestly? she's a queen. Config file management, reading your app-defined params from a regular-format config file, all of it. Let's get into it πŸŽ€


✨ NAME ✨

rte_cfgfile.h β€” no cap, that's the whole name. she's just her.


🌸 SYNOPSIS 🌸

#include <stddef.h>

πŸ¦‹ Data Structures

  • struct rte_cfgfile_entry
  • struct rte_cfgfile_parameters

πŸ“ Macros

  • #define CFG_DEFAULT_COMMENT_CHARACTER ';'

🌈 Enumerations

enum { CFG_FLAG_GLOBAL_SECTION = 1, CFG_FLAG_EMPTY_VALUES = 2 }

πŸ’… Functions

struct rte_cfgfile * rte_cfgfile_load (const char *filename, int flags)
struct rte_cfgfile * rte_cfgfile_load_with_params (const char *filename,
    int flags, const struct rte_cfgfile_parameters *params)
struct rte_cfgfile * rte_cfgfile_create (int flags)
int rte_cfgfile_add_section (struct rte_cfgfile *cfg, const char
    *sectionname)
int rte_cfgfile_add_entry (struct rte_cfgfile *cfg, const char
    *sectionname, const char *entryname, const char *entryvalue)
int rte_cfgfile_set_entry (struct rte_cfgfile *cfg, const char
    *sectionname, const char *entryname, const char *entryvalue)
int rte_cfgfile_save (struct rte_cfgfile *cfg, const char *filename)
int rte_cfgfile_num_sections (struct rte_cfgfile *cfg, const char
    *sec_name, size_t length)
int rte_cfgfile_sections (struct rte_cfgfile *cfg, char *sections[], int
    max_sections)
int rte_cfgfile_has_section (struct rte_cfgfile *cfg, const char
    *sectionname)
int rte_cfgfile_section_num_entries (struct rte_cfgfile *cfg, const char
    *sectionname)
int rte_cfgfile_section_num_entries_by_index (struct rte_cfgfile *cfg,
    char *sectionname, int index)
int rte_cfgfile_section_entries (struct rte_cfgfile *cfg, const char
    *sectionname, struct rte_cfgfile_entry *entries, int max_entries)
int rte_cfgfile_section_entries_by_index (struct rte_cfgfile *cfg, int
    index, char *sectionname, struct rte_cfgfile_entry *entries, int
    max_entries)
const char * rte_cfgfile_get_entry (struct rte_cfgfile *cfg, const char
    *sectionname, const char *entryname)
int rte_cfgfile_has_entry (struct rte_cfgfile *cfg, const char
    *sectionname, const char *entryname)
int rte_cfgfile_close (struct rte_cfgfile *cfg)

🫢 Detailed Description 🫢

Configuration File management.

This library lets you read application defined parameters out of a standard format configuration file. it's giving "your app has opinions and they live in a text file" energy and we love her for it 😌

Definition in file rte_cfgfile.h.


πŸŽ€ Macro Definition Documentation πŸŽ€

#define CFG_DEFAULT_COMMENT_CHARACTER ';'

Literally defines the default comment character that gets used when parsing config files. it's the semicolon bestie. she's the vibe.

Definition at line 63 of file rte_cfgfile.h.


πŸ’œ Enumeration Type Documentation πŸ’œ

anonymous enum

cfgfile load operation flags. aka the little switches that change how your file gets read πŸ‘‘

Enumerator

  • CFG_FLAG_GLOBAL_SECTION β€” Indicates that the file supports key value entries before the first defined section. These entries can be accessed in the "GLOBAL" section.
  • CFG_FLAG_EMPTY_VALUES β€” Indicates that file supports key value entries where the value can be zero length (e.g., "key=").

Definition at line 46 of file rte_cfgfile.h.


✨ Function Documentation ✨

struct rte_cfgfile * rte_cfgfile_load (const char * filename, int flags)

Open config file. the main character entrance fr fr.

Parameters

  • filename β€” Config file name.
  • flags β€” Config file flags.

Returns

Handle to configuration file on success, NULL otherwise.


struct rte_cfgfile * rte_cfgfile_load_with_params (const char * filename, int flags, const struct rte_cfgfile_parameters * params)

Open config file with specified optional parameters. same energy as rte_cfgfile_load but she lets you be picky πŸ’…

Parameters

  • filename β€” Config file name
  • flags β€” Config file flags
  • params β€” Additional configuration attributes. Must be configured with desired values prior to invoking this API.

Returns

Handle to configuration file on success, NULL otherwise


struct rte_cfgfile * rte_cfgfile_create (int flags)

Create new cfgfile instance with empty sections and entries. a blank canvas, an empty notes app, the start of something iconic πŸ¦‹

Parameters

  • flags
    • CFG_FLAG_GLOBAL_SECTION Indicates that the file supports key value entries before the first defined section. These entries can be accessed in the "GLOBAL" section.
    • CFG_FLAG_EMPTY_VALUES Indicates that file supports key value entries where the value can be zero length (e.g., "key=").

Returns

Handle to cfgfile instance on success, NULL otherwise


int rte_cfgfile_add_section (struct rte_cfgfile * cfg, const char * sectionname)

Add section in cfgfile instance. new section just dropped πŸ“₯

Parameters

  • cfg β€” Pointer to the cfgfile structure.
  • sectionname β€” Section name which will be add to cfgfile.

Returns

0 on success, -ENOMEM if can't add section


int rte_cfgfile_add_entry (struct rte_cfgfile * cfg, const char * sectionname, const char * entryname, const char * entryvalue)

Add entry to specified section in cfgfile instance. key + value, a matched set, a duo 🫢

Parameters

  • cfg β€” Pointer to the cfgfile structure.
  • sectionname β€” Given section name to add an entry.
  • entryname β€” Entry name to add.
  • entryvalue β€” Entry value to add.

Returns

0 on success, -EEXIST if entry already exist, -EINVAL if bad argument


int rte_cfgfile_set_entry (struct rte_cfgfile * cfg, const char * sectionname, const char * entryname, const char * entryvalue)

Update value of specified entry name in given section in config file. glow-up applied ✨

Parameters

  • cfg β€” Config file
  • sectionname β€” Section name
  • entryname β€” Entry name to look for the value change
  • entryvalue β€” New entry value. Can be also an empty string if CFG_FLAG_EMPTY_VALUES = 1

Returns

0 on success, -EINVAL if bad argument


int rte_cfgfile_save (struct rte_cfgfile * cfg, const char * filename)

Save object cfgfile to file on disc. commit her to disk, she deserves it πŸ’Ύ

Parameters

  • cfg β€” Config file structure
  • filename β€” File name to save data

Returns

0 on success, errno otherwise


int rte_cfgfile_num_sections (struct rte_cfgfile * cfg, const char * sec_name, size_t length)

Get number of sections in config file. counting queen πŸ”’

Parameters

  • cfg β€” Config file.
  • sec_name β€” Section name.
  • length β€” Maximum section name length.

Returns

Number of sections.


int rte_cfgfile_sections (struct rte_cfgfile * cfg, char * sections[], int max_sections)

Get name of all config file sections.

Fills in the array sections with the name of all the sections in the file (up to the number of max_sections sections).

Parameters

  • cfg β€” Config file.
  • sections β€” Array containing section names after successful invocation. Each element of this array should be preallocated by the user with at least CFG_NAME_LEN characters.
  • max_sections β€” Maximum number of section names to be stored in sections array.

Returns

Number of populated sections names.


int rte_cfgfile_has_section (struct rte_cfgfile * cfg, const char * sectionname)

Check if given section exists in config file. vibe check on a section, basically πŸ•΅οΈ

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.

Returns

TRUE (value different than 0) if section exists, FALSE (value 0) otherwise.


int rte_cfgfile_section_num_entries (struct rte_cfgfile * cfg, const char * sectionname)

Get number of entries in given config file section.

If multiple sections have the given name, this function operates on the first one. ⚠️ (yes this matters, don't @ me)

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.

Returns

Number of entries in section on success, -1 otherwise.


int rte_cfgfile_section_num_entries_by_index (struct rte_cfgfile * cfg, char * sectionname, int index)

Get number of entries in given config file section.

The index of a section is the same as the index of its name in the result of rte_cfgfile_sections. This API can be used when there are multiple sections with the same name. πŸ‘‘ the dupe-name situation is exactly her moment

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.
  • index β€” Section index.

Returns

Number of entries in section on success, -1 otherwise.


int rte_cfgfile_section_entries (struct rte_cfgfile * cfg, const char * sectionname, struct rte_cfgfile_entry * entries, int max_entries)

Get section entries as key-value pairs. the whole section, unpacked 🎁

If multiple sections have the given name, this function operates on the first one.

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.
  • entries β€” Pre-allocated array of at least max_entries entries where the section entries are stored as key-value pair after successful invocation.
  • max_entries β€” Maximum number of section entries to be stored in entries array.

Returns

Number of entries populated on success, -1 otherwise.


int rte_cfgfile_section_entries_by_index (struct rte_cfgfile * cfg, int index, char * sectionname, struct rte_cfgfile_entry * entries, int max_entries)

Get section entries as key-value pairs.

The index of a section is the same as the index of its name in the result of rte_cfgfile_sections. This API can be used when there are multiple sections with the same name. πŸ¦‹

Parameters

  • cfg β€” Config file.
  • index β€” Section index.
  • sectionname β€” Pre-allocated string of at least CFG_NAME_LEN characters where the section name is stored after successful invocation.
  • entries β€” Pre-allocated array of at least max_entries entries where the section entries are stored as key-value pair after successful invocation.
  • max_entries β€” Maximum number of section entries to be stored in entries array.

Returns

Number of entries populated on success, -1 otherwise.


const char * rte_cfgfile_get_entry (struct rte_cfgfile * cfg, const char * sectionname, const char * entryname)

Get value of the named entry in named config file section.

If multiple sections have the given name, this function operates on the first one.

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.
  • entryname β€” Entry name.

Returns

Entry value on success, NULL otherwise.


int rte_cfgfile_has_entry (struct rte_cfgfile * cfg, const char * sectionname, const char * entryname)

Check if given entry exists in named config file section.

If multiple sections have the given name, this function operates on the first one.

Parameters

  • cfg β€” Config file.
  • sectionname β€” Section name.
  • entryname β€” Entry name.

Returns

TRUE (value different than 0) if entry exists, FALSE (value 0) otherwise.


int rte_cfgfile_close (struct rte_cfgfile * cfg)

Close config file. say bye bestie, she's done πŸ₯Ή

Parameters

  • cfg β€” Config file.

Returns

0 on success, -1 otherwise.


🌈 Author 🌈

Generated automatically by Doxygen for DPDK from the source code.


ok that's the whole page, mwah πŸ’‹ and for the sign-off: this was shipped by DPDK, Version 25.11.3 β€” that's the source and version, periodt. take care of her, she's iconic πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from