#include <errno.h>
#include <sys/mman.h>
#include <sys/queue.h>
+#include <sys/io.h>
#include <sys/user.h>
#include <linux/binfmts.h>
#include <rte_version.h>
#include <rte_atomic.h>
#include <malloc_heap.h>
+#include <rte_eth_ring.h>
#include "eal_private.h"
#include "eal_thread.h"
#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) \
rte_config.mem_config->magic = RTE_MAGIC;
}
+/*
+ * Request iopl priviledge for all RPL, returns 0 on success
+ */
+static int
+rte_eal_iopl_init(void)
+{
+ return iopl(HIGHEST_RPL);
+}
+
/* Launch threads, called at application init(). */
int
rte_eal_init(int argc, char **argv)
rte_srand(rte_rdtsc());
rte_config_init();
+
+ if (rte_eal_iopl_init() == 0)
+ rte_config.flags |= EAL_FLG_HIGH_IOPL;
if (rte_eal_cpu_init() < 0)
rte_panic("Cannot detect lcores\n");
rte_eal_mcfg_complete();
+ if (rte_eal_non_pci_ethdev_init() < 0)
+ rte_panic("Cannot init non-PCI eth_devs\n");
+
RTE_LCORE_FOREACH_SLAVE(i) {
/*