NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_argp.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES, ALL RIGHTS RESERVED.
3  *
4  * This software product is a proprietary product of NVIDIA CORPORATION &
5  * AFFILIATES (the "Company") and all right, title, and interest in and to the
6  * software product, including all associated intellectual property rights, are
7  * and shall remain exclusively with the Company.
8  *
9  * This software product is governed by the End User License Agreement
10  * provided with the software product.
11  *
12  */
13 
23 #ifndef DOCA_ARGP_H_
24 #define DOCA_ARGP_H_
25 
26 #include <stdarg.h>
27 
28 #include <doca_compat.h>
29 #include <doca_error.h>
30 #include <doca_log.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
37 typedef doca_error_t (*doca_argp_param_cb_t)(void *, void *);
38 
40 typedef doca_error_t (*doca_argp_cmd_cb_t)(void *);
41 
43 typedef doca_error_t (*doca_argp_dpdk_cb_t)(int argc, char **argv);
44 
47 
49 typedef doca_error_t (*doca_argp_logger_cb_t)(enum doca_log_level level, const char *format, va_list args);
50 
61 };
62 
69 struct doca_argp_param;
70 
74 struct doca_argp_cmd;
75 
80 void doca_argp_usage(void);
81 
100 doca_error_t doca_argp_init(const char *program_name, void *program_config);
101 
118 doca_error_t doca_argp_register_param(struct doca_argp_param *input_param);
119 
135 doca_error_t doca_argp_register_cmd(struct doca_argp_cmd *input_cmd);
136 
153 
169 
183 
194 
215 doca_error_t doca_argp_start(int argc, char **argv);
216 
230 
243 
260 doca_error_t doca_argp_param_create(struct doca_argp_param **param);
261 
274 void doca_argp_param_set_short_name(struct doca_argp_param *param, const char *name);
275 
288 void doca_argp_param_set_long_name(struct doca_argp_param *param, const char *name);
289 
300 void doca_argp_param_set_arguments(struct doca_argp_param *param, const char *arguments);
301 
314 void doca_argp_param_set_description(struct doca_argp_param *param, const char *description);
315 
331 void doca_argp_param_set_callback(struct doca_argp_param *param, doca_argp_param_cb_t callback);
332 
345 void doca_argp_param_set_type(struct doca_argp_param *param, enum doca_argp_type type);
346 
357 void doca_argp_param_set_mandatory(struct doca_argp_param *param);
358 
369 void doca_argp_param_set_cli_only(struct doca_argp_param *param);
370 
383 void doca_argp_param_set_multiplicity(struct doca_argp_param *param);
384 
396 void doca_argp_param_set_singular(struct doca_argp_param *param);
397 
408 void doca_argp_param_set_inherited(struct doca_argp_param *param);
409 
420 void doca_argp_param_set_hidden(struct doca_argp_param *param);
421 
435 doca_error_t doca_argp_param_destroy(struct doca_argp_param *param);
436 
453 doca_error_t doca_argp_cmd_create(struct doca_argp_cmd **cmd);
454 
467 void doca_argp_cmd_set_name(struct doca_argp_cmd *cmd, const char *name);
468 
481 void doca_argp_cmd_set_description(struct doca_argp_cmd *cmd, const char *description);
482 
497 void doca_argp_cmd_set_callback(struct doca_argp_cmd *cmd, doca_argp_cmd_cb_t callback);
498 
508 void doca_argp_cmd_set_hidden(struct doca_argp_cmd *cmd);
509 
528 doca_error_t doca_argp_cmd_register_param(struct doca_argp_cmd *cmd, struct doca_argp_param *input_param);
529 
547 doca_error_t doca_argp_cmd_register_cmd(struct doca_argp_cmd *cmd, struct doca_argp_cmd *input_cmd);
548 
562 doca_error_t doca_argp_cmd_destroy(struct doca_argp_cmd *cmd);
563 
577 
590 
591 #ifdef __cplusplus
592 } /* extern "C" */
593 #endif
594 
597 #endif /* DOCA_ARGP_H_ */
__builtin_va_list va_list
DOCA_EXPERIMENTAL void doca_argp_cmd_set_callback(struct doca_argp_cmd *cmd, doca_argp_cmd_cb_t callback)
Set the callback function of the program command.
DOCA_EXPERIMENTAL doca_error_t doca_argp_param_destroy(struct doca_argp_param *param)
Destroy a program param.
DOCA_EXPERIMENTAL void doca_argp_param_set_singular(struct doca_argp_param *param)
Mark the program param as singular.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_validation_callback(doca_argp_validation_cb_t callback)
Register program validation callback function.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_cmd(struct doca_argp_cmd *input_cmd)
Register a program command.
DOCA_EXPERIMENTAL doca_error_t doca_argp_get_sdk_log_level(int *log_level)
Get the SDK log level as passed by the user.
DOCA_EXPERIMENTAL void doca_argp_param_set_description(struct doca_argp_param *param, const char *description)
Set the description of the program param, used during program usage.
DOCA_EXPERIMENTAL void doca_argp_cmd_set_description(struct doca_argp_cmd *cmd, const char *description)
Set the description of the program command, used during the program usage.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_logger_callback(doca_argp_logger_cb_t callback)
Register a logger callback to be used for user-facing events.
doca_error_t(* doca_argp_logger_cb_t)(enum doca_log_level level, const char *format, va_list args)
(Operational) Logger callback function type
Definition: doca_argp.h:49
DOCA_EXPERIMENTAL doca_error_t doca_argp_cmd_destroy(struct doca_argp_cmd *cmd)
Destroy a program command.
DOCA_EXPERIMENTAL void doca_argp_param_set_long_name(struct doca_argp_param *param, const char *name)
Set the long name of the program param.
doca_argp_type
Flag input type.
Definition: doca_argp.h:54
DOCA_EXPERIMENTAL doca_error_t doca_argp_cmd_register_param(struct doca_argp_cmd *cmd, struct doca_argp_param *input_param)
Register a program flag for the given program command.
doca_error_t(* doca_argp_validation_cb_t)(void *)
Program validation callback function type.
Definition: doca_argp.h:46
doca_error_t(* doca_argp_dpdk_cb_t)(int argc, char **argv)
DPDK flags callback function type.
Definition: doca_argp.h:43
DOCA_EXPERIMENTAL doca_error_t doca_argp_start(int argc, char **argv)
Parse incoming arguments (cmd line/json).
DOCA_EXPERIMENTAL void doca_argp_param_set_arguments(struct doca_argp_param *param, const char *arguments)
Set the description of the expected arguments of the program param, used during program usage.
DOCA_EXPERIMENTAL void doca_argp_param_set_cli_only(struct doca_argp_param *param)
Mark the program param as supported only in CLI mode and unavailable through a JSON file.
DOCA_EXPERIMENTAL doca_error_t doca_argp_init(const char *program_name, void *program_config)
Initialize the parser interface.
DOCA_EXPERIMENTAL void doca_argp_set_dpdk_program(doca_argp_dpdk_cb_t callback)
Mark the program as based on DPDK API.
DOCA_EXPERIMENTAL doca_error_t doca_argp_get_log_level(int *log_level)
Get the log level the user inserted it.
DOCA_EXPERIMENTAL void doca_argp_usage(void)
Print usage instructions.
DOCA_EXPERIMENTAL void doca_argp_cmd_set_hidden(struct doca_argp_cmd *cmd)
Mark the program command as hidden.
DOCA_EXPERIMENTAL void doca_argp_param_set_hidden(struct doca_argp_param *param)
Mark the program param as hidden.
DOCA_EXPERIMENTAL void doca_argp_param_set_inherited(struct doca_argp_param *param)
Mark the program param as inherited through the command chain.
doca_error_t(* doca_argp_param_cb_t)(void *, void *)
Flag callback function type.
Definition: doca_argp.h:37
DOCA_EXPERIMENTAL void doca_argp_param_set_callback(struct doca_argp_param *param, doca_argp_param_cb_t callback)
Set the callback function of the program param.
DOCA_EXPERIMENTAL void doca_argp_param_set_mandatory(struct doca_argp_param *param)
Mark the program param as mandatory.
DOCA_EXPERIMENTAL doca_error_t doca_argp_param_create(struct doca_argp_param **param)
Create new program param.
DOCA_EXPERIMENTAL void doca_argp_param_set_type(struct doca_argp_param *param, enum doca_argp_type type)
Set the type of the param arguments.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_version_callback(doca_argp_param_cb_t callback)
Register an alternative version callback.
DOCA_EXPERIMENTAL void doca_argp_param_set_short_name(struct doca_argp_param *param, const char *name)
Set the short name of the program param.
DOCA_EXPERIMENTAL doca_error_t doca_argp_cmd_register_cmd(struct doca_argp_cmd *cmd, struct doca_argp_cmd *input_cmd)
Register an inner program command for the given program command.
doca_error_t(* doca_argp_cmd_cb_t)(void *)
Cmd callback function type.
Definition: doca_argp.h:40
DOCA_EXPERIMENTAL doca_error_t doca_argp_destroy(void)
ARG Parser destroy.
DOCA_EXPERIMENTAL doca_error_t doca_argp_register_param(struct doca_argp_param *input_param)
Register a program flag.
DOCA_EXPERIMENTAL doca_error_t doca_argp_cmd_create(struct doca_argp_cmd **cmd)
Create new program command.
DOCA_EXPERIMENTAL void doca_argp_param_set_multiplicity(struct doca_argp_param *param)
Mark the program param as supporting multiple appearances.
DOCA_EXPERIMENTAL void doca_argp_cmd_set_name(struct doca_argp_cmd *cmd, const char *name)
Set the name of the program command.
DOCA_EXPERIMENTAL doca_error_t doca_argp_disable_logger_callback(void)
Disable a previously registered logger callback, reverting back to default stderr backend.
@ DOCA_ARGP_TYPE_STRING
Definition: doca_argp.h:56
@ DOCA_ARGP_TYPE_BOOLEAN
Definition: doca_argp.h:58
@ DOCA_ARGP_TYPE_INT
Definition: doca_argp.h:57
@ DOCA_ARGP_TYPE_JSON_OBJ
Definition: doca_argp.h:59
@ DOCA_ARGP_TYPE_UNKNOWN
Definition: doca_argp.h:55
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
Definition: doca_compat.h:103
enum doca_error doca_error_t
DOCA API return codes.
doca_log_level
log levels, sorted by verbosity level from high to low
Definition: doca_log.h:43
type description
uint8_t type
Definition: packets.h:0
int log_level
Definition: pcc.c:40