eal: fix checkpatch issues before moving code
[dpdk.git] / lib / librte_eal / bsdapp / eal / eal.c
index 38c6cfc..81d1a65 100644 (file)
 #define OPT_NO_HUGE     "no-huge"
 #define OPT_FILE_PREFIX "file-prefix"
 #define OPT_SOCKET_MEM  "socket-mem"
-#define OPT_USE_DEVICE "use-device"
 #define OPT_PCI_WHITELIST "pci-whitelist"
 #define OPT_PCI_BLACKLIST "pci-blacklist"
 #define OPT_VDEV        "vdev"
 #define OPT_SYSLOG      "syslog"
-
-#define RTE_EAL_BLACKLIST_SIZE 0x100
+#define OPT_LOG_LEVEL   "log-level"
 
 #define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL)
 
-#define SOCKET_MEM_STRLEN (RTE_MAX_NUMA_NODES * 10)
-
-#define HIGHEST_RPL 3
-
 #define BITS_PER_HEX 4
 
-#define GET_BLACKLIST_FIELD(in, fd, lim, dlm)                   \
-{                                                               \
-       unsigned long val;                                      \
-       char *end;                                              \
-       errno = 0;                                              \
-       val = strtoul((in), &end, 16);                          \
-       if (errno != 0 || end[0] != (dlm) || val > (lim))       \
-               return (-EINVAL);                               \
-       (fd) = (typeof (fd))val;                                \
-       (in) = end + 1;                                         \
-}
-
 /* Allow the application to print its usage message too if set */
 static rte_usage_hook_t        rte_application_usage_hook = NULL;
 /* early configuration structure, when memory config is not mmapped */
@@ -311,6 +293,7 @@ eal_usage(const char *prgname)
               "  -v           : Display version information on startup\n"
               "  -m MB        : memory to allocate\n"
               "  -r NUM       : force number of memory ranks (don't detect)\n"
+              "  --"OPT_LOG_LEVEL"  : set default log level\n"
               "  --"OPT_PROC_TYPE"  : type of this process\n"
               "  --"OPT_PCI_BLACKLIST", -b: add a PCI device in black list.\n"
               "               Prevent EAL from using this PCI device. The argument\n"
@@ -458,6 +441,28 @@ eal_parse_syslog(const char *facility)
        return -1;
 }
 
+static int
+eal_parse_log_level(const char *level, uint32_t *log_level)
+{
+       char *end;
+       unsigned long tmp;
+
+       errno = 0;
+       tmp = strtoul(level, &end, 0);
+
+       /* check for errors */
+       if ((errno != 0) || (level[0] == '\0') ||
+           end == NULL || (*end != '\0'))
+               return -1;
+
+       /* log_level is a uint32_t */
+       if (tmp >= UINT32_MAX)
+               return -1;
+
+       *log_level = tmp;
+       return 0;
+}
+
 static inline size_t
 eal_get_hugepage_mem_size(void)
 {
@@ -508,10 +513,11 @@ eal_parse_args(int argc, char **argv)
                {OPT_PROC_TYPE, 1, 0, 0},
                {OPT_FILE_PREFIX, 1, 0, 0},
                {OPT_SOCKET_MEM, 1, 0, 0},
-               {OPT_PCI_WHITELIST, 1, 0, 0},
-               {OPT_PCI_BLACKLIST, 1, 0, 0},
+               {OPT_PCI_WHITELIST, 1, 0, 'w'},
+               {OPT_PCI_BLACKLIST, 1, 0, 'b'},
                {OPT_VDEV, 1, 0, 0},
                {OPT_SYSLOG, 1, NULL, 0},
+               {OPT_LOG_LEVEL, 1, NULL, 0},
                {0, 0, 0, 0}
        };
 
@@ -524,6 +530,8 @@ eal_parse_args(int argc, char **argv)
        internal_config.hugepage_dir = NULL;
        internal_config.force_sockets = 0;
        internal_config.syslog_facility = LOG_DAEMON;
+       /* default value from build option */
+       internal_config.log_level = RTE_LOG_LEVEL;
 #ifdef RTE_LIBEAL_USE_HPET
        internal_config.no_hpet = 0;
 #else
@@ -605,71 +613,47 @@ eal_parse_args(int argc, char **argv)
                case 0:
                        if (!strcmp(lgopts[option_index].name, OPT_NO_HUGE)) {
                                internal_config.no_hugetlbfs = 1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_NO_PCI)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_NO_PCI)) {
                                internal_config.no_pci = 1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_NO_HPET)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_NO_HPET)) {
                                internal_config.no_hpet = 1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_VMWARE_TSC_MAP)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_VMWARE_TSC_MAP)) {
                                internal_config.vmware_tsc_map = 1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_NO_SHCONF)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_NO_SHCONF)) {
                                internal_config.no_shconf = 1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_HUGE_DIR)) {
-                               RTE_LOG(ERR, EAL, "Option "OPT_HUGE_DIR" is not supported on"
-                                               "FreeBSD\n");
-                               return -1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_PROC_TYPE)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_PROC_TYPE)) {
                                internal_config.process_type = eal_parse_proc_type(optarg);
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_FILE_PREFIX)) {
-                               RTE_LOG(ERR, EAL, "Option "OPT_FILE_PREFIX" is not supported on"
-                                               "FreeBSD\n");
-                               return -1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_SOCKET_MEM)) {
-                               RTE_LOG(ERR, EAL, "Option "OPT_SOCKET_MEM" is not supported on"
-                                               "FreeBSD\n");
-                               return -1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_USE_DEVICE)) {
-                               printf("The --use-device option is deprecated, please use\n"
-                                       "--whitelist or --vdev instead.\n");
-                               eal_usage(prgname);
-                               return -1;
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_PCI_BLACKLIST)) {
-                               if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI,
-                                               optarg) < 0) {
-                                       eal_usage(prgname);
-                                       return -1;
-                               }
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_PCI_WHITELIST)) {
-                               if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI,
-                                               optarg) < 0) {
-                                       eal_usage(prgname);
-                                       return -1;
-                               }
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_VDEV)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_VDEV)) {
                                if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL,
                                                optarg) < 0) {
                                        eal_usage(prgname);
                                        return -1;
                                }
-                       }
-                       else if (!strcmp(lgopts[option_index].name, OPT_SYSLOG)) {
+                       } else if (!strcmp(lgopts[option_index].name, OPT_SYSLOG)) {
                                if (eal_parse_syslog(optarg) < 0) {
                                        RTE_LOG(ERR, EAL, "invalid parameters for --"
                                                        OPT_SYSLOG "\n");
                                        eal_usage(prgname);
                                        return -1;
                                }
+                       } else if (!strcmp(lgopts[option_index].name,
+                                        OPT_LOG_LEVEL)) {
+                               uint32_t log;
+
+                               if (eal_parse_log_level(optarg, &log) < 0) {
+                                       RTE_LOG(ERR, EAL,
+                                               "invalid parameters for --"
+                                               OPT_LOG_LEVEL "\n");
+                                       eal_usage(prgname);
+                                       return -1;
+                               }
+                               internal_config.log_level = log;
+                       } else {
+                               RTE_LOG(ERR, EAL, "Option %s is not supported "
+                                       "on FreeBSD\n",
+                                       lgopts[option_index].name);
+                               eal_usage(prgname);
+                               return -1;
                        }
                        break;
 
@@ -811,6 +795,9 @@ rte_eal_init(int argc, char **argv)
        if (fctret < 0)
                exit(1);
 
+       /* set log level as early as possible */
+       rte_set_log_level(internal_config.log_level);
+
        if (internal_config.no_hugetlbfs == 0 &&
                        internal_config.process_type != RTE_PROC_SECONDARY &&
                        eal_hugepage_info_init() < 0)