eal: move OS common options usage functions
authorTal Shnaiderman <talshn@mellanox.com>
Mon, 29 Jun 2020 12:37:33 +0000 (15:37 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 29 Jun 2020 22:02:53 +0000 (00:02 +0200)
Move common functions between Unix and Windows to eal_common_options.c.

Those functions are getter functions for rte_application_usage_hook.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
lib/librte_eal/common/eal_common_options.c
lib/librte_eal/common/eal_private.h
lib/librte_eal/freebsd/eal.c
lib/librte_eal/linux/eal.c
lib/librte_eal/windows/eal.c

index 6b909ce..24b223e 100644 (file)
@@ -146,6 +146,29 @@ static int master_lcore_parsed;
 static int mem_parsed;
 static int core_parsed;
 
+/* Allow the application to print its usage message too if set */
+static rte_usage_hook_t rte_application_usage_hook;
+
+/* Returns rte_usage_hook_t */
+rte_usage_hook_t
+eal_get_application_usage_hook(void)
+{
+       return rte_application_usage_hook;
+}
+
+/* Set a per-application usage message */
+rte_usage_hook_t
+rte_set_application_usage_hook(rte_usage_hook_t usage_func)
+{
+       rte_usage_hook_t old_func;
+
+       /* Will be NULL on the first call to denote the last usage routine. */
+       old_func = rte_application_usage_hook;
+       rte_application_usage_hook = usage_func;
+
+       return old_func;
+}
+
 #ifndef RTE_EXEC_ENV_WINDOWS
 static char **eal_args;
 static char **eal_app_args;
index be4d0a8..46bcae9 100644 (file)
@@ -690,4 +690,13 @@ eal_set_runtime_dir(char *run_dir, size_t size);
 struct internal_config *
 eal_get_internal_configuration(void);
 
+/**
+ * Get the current value of the rte_application_usage pointer
+ *
+ * @return
+ *   Pointer to the current value of rte_application_usage .
+ */
+rte_usage_hook_t
+eal_get_application_usage_hook(void);
+
 #endif /* _EAL_PRIVATE_H_ */
index 021e36f..8c75cba 100644 (file)
@@ -56,8 +56,6 @@
 
 #define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL)
 
-/* Allow the application to print its usage message too if set */
-static rte_usage_hook_t        rte_application_usage_hook = NULL;
 /* define fd variable here, because file needs to be kept open for the
  * duration of the program, as we hold a write lock on it in the primary proc */
 static int mem_cfg_fd = -1;
@@ -418,28 +416,17 @@ rte_config_init(void)
 static void
 eal_usage(const char *prgname)
 {
+       rte_usage_hook_t hook = eal_get_application_usage_hook();
+
        printf("\nUsage: %s ", prgname);
        eal_common_usage();
        /* Allow the application to print its usage message too if hook is set */
-       if ( rte_application_usage_hook ) {
+       if (hook) {
                printf("===== Application Usage =====\n\n");
-               rte_application_usage_hook(prgname);
+               (hook)(prgname);
        }
 }
 
-/* Set a per-application usage message */
-rte_usage_hook_t
-rte_set_application_usage_hook( rte_usage_hook_t usage_func )
-{
-       rte_usage_hook_t        old_func;
-
-       /* Will be NULL on the first call to denote the last usage routine. */
-       old_func                                        = rte_application_usage_hook;
-       rte_application_usage_hook      = usage_func;
-
-       return old_func;
-}
-
 static inline size_t
 eal_get_hugepage_mem_size(void)
 {
index e7068f1..3b56d14 100644 (file)
@@ -69,9 +69,6 @@
 
 #define KERNEL_IOMMU_GROUPS_PATH "/sys/kernel/iommu_groups"
 
-/* Allow the application to print its usage message too if set */
-static rte_usage_hook_t        rte_application_usage_hook = NULL;
-
 /* define fd variable here, because file needs to be kept open for the
  * duration of the program, as we hold a write lock on it in the primary proc */
 static int mem_cfg_fd = -1;
@@ -532,6 +529,8 @@ eal_hugedirs_unlock(void)
 static void
 eal_usage(const char *prgname)
 {
+       rte_usage_hook_t hook = eal_get_application_usage_hook();
+
        printf("\nUsage: %s ", prgname);
        eal_common_usage();
        printf("EAL Linux options:\n"
@@ -546,25 +545,12 @@ eal_usage(const char *prgname)
               "  --"OPT_MATCH_ALLOCATIONS" Free hugepages exactly as allocated\n"
               "\n");
        /* Allow the application to print its usage message too if hook is set */
-       if ( rte_application_usage_hook ) {
+       if (hook) {
                printf("===== Application Usage =====\n\n");
-               rte_application_usage_hook(prgname);
+               (hook)(prgname);
        }
 }
 
-/* Set a per-application usage message */
-rte_usage_hook_t
-rte_set_application_usage_hook( rte_usage_hook_t usage_func )
-{
-       rte_usage_hook_t        old_func;
-
-       /* Will be NULL on the first call to denote the last usage routine. */
-       old_func                                        = rte_application_usage_hook;
-       rte_application_usage_hook      = usage_func;
-
-       return old_func;
-}
-
 static int
 eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg)
 {
index 11801e6..8333d59 100644 (file)
@@ -24,9 +24,6 @@
 
 #define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL)
 
- /* Allow the application to print its usage message too if set */
-static rte_usage_hook_t        rte_application_usage_hook;
-
 /* define fd variable here, because file needs to be kept open for the
  * duration of the program, as we hold a write lock on it in the primary proc
  */
@@ -72,14 +69,16 @@ eal_proc_type_detect(void)
 static void
 eal_usage(const char *prgname)
 {
+       rte_usage_hook_t hook = eal_get_application_usage_hook();
+
        printf("\nUsage: %s ", prgname);
        eal_common_usage();
        /* Allow the application to print its usage message too
         * if hook is set
         */
-       if (rte_application_usage_hook) {
+       if (hook) {
                printf("===== Application Usage =====\n\n");
-               rte_application_usage_hook(prgname);
+               (hook)(prgname);
        }
 }