DPDK  23.07.0
rte_memzone.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #ifndef _RTE_MEMZONE_H_
6 #define _RTE_MEMZONE_H_
7 
25 #include <stdio.h>
26 #include <rte_memory.h>
27 #include <rte_common.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #define RTE_MEMZONE_2MB 0x00000001
34 #define RTE_MEMZONE_1GB 0x00000002
35 #define RTE_MEMZONE_16MB 0x00000100
36 #define RTE_MEMZONE_16GB 0x00000200
37 #define RTE_MEMZONE_256KB 0x00010000
38 #define RTE_MEMZONE_256MB 0x00020000
39 #define RTE_MEMZONE_512MB 0x00040000
40 #define RTE_MEMZONE_4GB 0x00080000
41 #define RTE_MEMZONE_SIZE_HINT_ONLY 0x00000004
42 #define RTE_MEMZONE_IOVA_CONTIG 0x00100000
48 struct rte_memzone {
49 
50 #define RTE_MEMZONE_NAMESIZE 32
51  char name[RTE_MEMZONE_NAMESIZE];
53  rte_iova_t iova;
54  RTE_STD_C11
55  union {
56  void *addr;
57  uint64_t addr_64;
58  };
59  size_t len;
61  uint64_t hugepage_sz;
63  int32_t socket_id;
65  uint32_t flags;
66 } __rte_packed;
67 
81 __rte_experimental
82 int rte_memzone_max_set(size_t max);
83 
95 __rte_experimental
96 size_t rte_memzone_max_get(void);
97 
155 const struct rte_memzone *rte_memzone_reserve(const char *name,
156  size_t len, int socket_id,
157  unsigned flags);
158 
220 const struct rte_memzone *rte_memzone_reserve_aligned(const char *name,
221  size_t len, int socket_id,
222  unsigned flags, unsigned align);
223 
291 const struct rte_memzone *rte_memzone_reserve_bounded(const char *name,
292  size_t len, int socket_id,
293  unsigned flags, unsigned align, unsigned bound);
294 
304 int rte_memzone_free(const struct rte_memzone *mz);
305 
317 const struct rte_memzone *rte_memzone_lookup(const char *name);
318 
325 void rte_memzone_dump(FILE *f);
326 
335 void rte_memzone_walk(void (*func)(const struct rte_memzone *, void *arg),
336  void *arg);
337 
338 #ifdef __cplusplus
339 }
340 #endif
341 
342 #endif /* _RTE_MEMZONE_H_ */
void * addr
Definition: rte_memzone.h:56
uint32_t flags
Definition: rte_memzone.h:65
const struct rte_memzone * rte_memzone_reserve(const char *name, size_t len, int socket_id, unsigned flags)
#define __rte_packed
Definition: rte_common.h:83
uint64_t addr_64
Definition: rte_memzone.h:57
size_t len
Definition: rte_memzone.h:59
__rte_experimental size_t rte_memzone_max_get(void)
__rte_experimental int rte_memzone_max_set(size_t max)
const struct rte_memzone * rte_memzone_lookup(const char *name)
const struct rte_memzone * rte_memzone_reserve_bounded(const char *name, size_t len, int socket_id, unsigned flags, unsigned align, unsigned bound)
void rte_memzone_walk(void(*func)(const struct rte_memzone *, void *arg), void *arg)
void rte_memzone_dump(FILE *f)
int32_t socket_id
Definition: rte_memzone.h:63
const struct rte_memzone * rte_memzone_reserve_aligned(const char *name, size_t len, int socket_id, unsigned flags, unsigned align)
char name[RTE_MEMZONE_NAMESIZE]
Definition: rte_memzone.h:51
int rte_memzone_free(const struct rte_memzone *mz)
uint64_t hugepage_sz
Definition: rte_memzone.h:61