X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Ffreebsd%2Feal%2Feal_memory.c;h=a97d8f0f0c97c656c3b9b23b013ab2e92e813288;hb=47c45a4df687a1bf1f0ae186ebe555c883b446f2;hp=4b092e1f21220a5f8cd7d2e9ce1e72d64dc4be0b;hpb=25c99fbd6851dcdbded0d5ef86f685043ffa4a55;p=dpdk.git diff --git a/lib/librte_eal/freebsd/eal/eal_memory.c b/lib/librte_eal/freebsd/eal/eal_memory.c index 4b092e1f21..a97d8f0f0c 100644 --- a/lib/librte_eal/freebsd/eal/eal_memory.c +++ b/lib/librte_eal/freebsd/eal/eal_memory.c @@ -11,16 +11,28 @@ #include #include -#include #include #include #include + #include "eal_private.h" #include "eal_internal_cfg.h" #include "eal_filesystem.h" +#include "eal_memcfg.h" +#include "eal_options.h" #define EAL_PAGE_SIZE (sysconf(_SC_PAGESIZE)) +uint64_t eal_get_baseaddr(void) +{ + /* + * FreeBSD may allocate something in the space we will be mapping things + * before we get a chance to do that, so use a base address that's far + * away from where malloc() et al usually map things. + */ + return 0x1000000000ULL; +} + /* * Get physical address of any mapped virtual address in the current process. */ @@ -81,6 +93,7 @@ rte_eal_hugepage_init(void) msl->page_sz = page_sz; msl->len = internal_config.memory; msl->socket_id = 0; + msl->heap = 1; /* populate memsegs. each memseg is 1 page long */ for (cur_seg = 0; cur_seg < n_segs; cur_seg++) { @@ -367,7 +380,8 @@ alloc_va_space(struct rte_memseg_list *msl) addr = eal_get_virtual_area(msl->base_va, &mem_sz, page_sz, 0, flags); if (addr == NULL) { if (rte_errno == EADDRNOTAVAIL) - RTE_LOG(ERR, EAL, "Could not mmap %llu bytes at [%p] - please use '--base-virtaddr' option\n", + RTE_LOG(ERR, EAL, "Could not mmap %llu bytes at [%p] - " + "please use '--" OPT_BASE_VIRTADDR "' option\n", (unsigned long long)mem_sz, msl->base_va); else RTE_LOG(ERR, EAL, "Cannot reserve memory\n");