DPDK
18.02.2
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_eal
common
include
rte_eal_memconfig.h
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2010-2014 Intel Corporation
3
*/
4
5
#ifndef _RTE_EAL_MEMCONFIG_H_
6
#define _RTE_EAL_MEMCONFIG_H_
7
8
#include <rte_config.h>
9
#include <
rte_tailq.h
>
10
#include <
rte_memory.h
>
11
#include <
rte_memzone.h
>
12
#include <rte_malloc_heap.h>
13
#include <
rte_rwlock.h
>
14
#include <
rte_pause.h
>
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
25
struct
rte_mem_config
{
26
volatile
uint32_t
magic
;
28
/* memory topology */
29
uint32_t
nchannel
;
30
uint32_t
nrank
;
39
rte_rwlock_t
mlock
;
40
rte_rwlock_t
qlock
;
41
rte_rwlock_t
mplock
;
43
uint32_t
memzone_cnt
;
45
/* memory segments and zones */
46
struct
rte_memseg
memseg
[RTE_MAX_MEMSEG];
47
struct
rte_memzone
memzone
[RTE_MAX_MEMZONE];
49
struct
rte_tailq_head
tailq_head
[RTE_MAX_TAILQ];
51
/* Heaps of Malloc per socket */
52
struct
malloc_heap
malloc_heaps[RTE_MAX_NUMA_NODES];
53
54
/* address of mem_config in primary process. used to map shared config into
55
* exact same address the primary process maps it.
56
*/
57
uint64_t mem_cfg_addr;
58
} __attribute__((__packed__));
59
60
61
inline
static
void
62
rte_eal_mcfg_wait_complete(
struct
rte_mem_config
* mcfg)
63
{
64
/* wait until shared mem_config finish initialising */
65
while
(mcfg->
magic
!=
RTE_MAGIC
)
66
rte_pause
();
67
}
68
69
#ifdef __cplusplus
70
}
71
#endif
72
73
#endif
/*__RTE_EAL_MEMCONFIG_H_*/
Generated by
1.8.1.2