1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2014 6WIND S.A. 3 */ 4 5 #ifndef EAL_OPTIONS_H 6 #define EAL_OPTIONS_H 7 8 #include "getopt.h" 9 10 struct rte_tel_data; 11 12 enum { 13 /* long options mapped to a short option */ 14 #define OPT_HELP "help" 15 OPT_HELP_NUM = 'h', 16 #define OPT_DEV_ALLOW "allow" 17 OPT_DEV_ALLOW_NUM = 'a', 18 #define OPT_DEV_BLOCK "block" 19 OPT_DEV_BLOCK_NUM = 'b', 20 21 /* legacy option that will be removed in future */ 22 #define OPT_PCI_WHITELIST "pci-whitelist" 23 OPT_PCI_WHITELIST_NUM = 'w', 24 25 /* first long only option value must be >= 256, so that we won't 26 * conflict with short options */ 27 OPT_LONG_MIN_NUM = 256, 28 #define OPT_BASE_VIRTADDR "base-virtaddr" 29 OPT_BASE_VIRTADDR_NUM, 30 #define OPT_CREATE_UIO_DEV "create-uio-dev" 31 OPT_CREATE_UIO_DEV_NUM, 32 #define OPT_FILE_PREFIX "file-prefix" 33 OPT_FILE_PREFIX_NUM, 34 #define OPT_HUGE_DIR "huge-dir" 35 OPT_HUGE_DIR_NUM, 36 #define OPT_HUGE_UNLINK "huge-unlink" 37 OPT_HUGE_UNLINK_NUM, 38 #define OPT_LCORES "lcores" 39 OPT_LCORES_NUM, 40 #define OPT_LOG_LEVEL "log-level" 41 OPT_LOG_LEVEL_NUM, 42 #define OPT_TRACE "trace" 43 OPT_TRACE_NUM, 44 #define OPT_TRACE_DIR "trace-dir" 45 OPT_TRACE_DIR_NUM, 46 #define OPT_TRACE_BUF_SIZE "trace-bufsz" 47 OPT_TRACE_BUF_SIZE_NUM, 48 #define OPT_TRACE_MODE "trace-mode" 49 OPT_TRACE_MODE_NUM, 50 #define OPT_MAIN_LCORE "main-lcore" 51 OPT_MAIN_LCORE_NUM, 52 #define OPT_MASTER_LCORE "master-lcore" 53 OPT_MASTER_LCORE_NUM, 54 #define OPT_MBUF_POOL_OPS_NAME "mbuf-pool-ops-name" 55 OPT_MBUF_POOL_OPS_NAME_NUM, 56 #define OPT_PROC_TYPE "proc-type" 57 OPT_PROC_TYPE_NUM, 58 #define OPT_NO_HPET "no-hpet" 59 OPT_NO_HPET_NUM, 60 #define OPT_NO_HUGE "no-huge" 61 OPT_NO_HUGE_NUM, 62 #define OPT_NO_PCI "no-pci" 63 OPT_NO_PCI_NUM, 64 #define OPT_NO_SHCONF "no-shconf" 65 OPT_NO_SHCONF_NUM, 66 #define OPT_IN_MEMORY "in-memory" 67 OPT_IN_MEMORY_NUM, 68 #define OPT_SOCKET_MEM "socket-mem" 69 OPT_SOCKET_MEM_NUM, 70 #define OPT_SOCKET_LIMIT "socket-limit" 71 OPT_SOCKET_LIMIT_NUM, 72 #define OPT_SYSLOG "syslog" 73 OPT_SYSLOG_NUM, 74 #define OPT_VDEV "vdev" 75 OPT_VDEV_NUM, 76 #define OPT_VFIO_INTR "vfio-intr" 77 OPT_VFIO_INTR_NUM, 78 #define OPT_VFIO_VF_TOKEN "vfio-vf-token" 79 OPT_VFIO_VF_TOKEN_NUM, 80 #define OPT_VMWARE_TSC_MAP "vmware-tsc-map" 81 OPT_VMWARE_TSC_MAP_NUM, 82 #define OPT_LEGACY_MEM "legacy-mem" 83 OPT_LEGACY_MEM_NUM, 84 #define OPT_SINGLE_FILE_SEGMENTS "single-file-segments" 85 OPT_SINGLE_FILE_SEGMENTS_NUM, 86 #define OPT_IOVA_MODE "iova-mode" 87 OPT_IOVA_MODE_NUM, 88 #define OPT_MATCH_ALLOCATIONS "match-allocations" 89 OPT_MATCH_ALLOCATIONS_NUM, 90 #define OPT_TELEMETRY "telemetry" 91 OPT_TELEMETRY_NUM, 92 #define OPT_NO_TELEMETRY "no-telemetry" 93 OPT_NO_TELEMETRY_NUM, 94 #define OPT_FORCE_MAX_SIMD_BITWIDTH "force-max-simd-bitwidth" 95 OPT_FORCE_MAX_SIMD_BITWIDTH_NUM, 96 97 /* legacy option that will be removed in future */ 98 #define OPT_PCI_BLACKLIST "pci-blacklist" 99 OPT_PCI_BLACKLIST_NUM, 100 101 OPT_LONG_MAX_NUM 102 }; 103 104 extern const char eal_short_options[]; 105 extern const struct option eal_long_options[]; 106 107 int eal_parse_common_option(int opt, const char *argv, 108 struct internal_config *conf); 109 int eal_option_device_parse(void); 110 int eal_adjust_config(struct internal_config *internal_cfg); 111 int eal_cleanup_config(struct internal_config *internal_cfg); 112 int eal_check_common_options(struct internal_config *internal_cfg); 113 void eal_common_usage(void); 114 enum rte_proc_type_t eal_proc_type_detect(void); 115 int eal_plugins_init(void); 116 int eal_save_args(int argc, char **argv); 117 int handle_eal_info_request(const char *cmd, const char *params __rte_unused, 118 struct rte_tel_data *d); 119 120 #endif /* EAL_OPTIONS_H */ 121