f-stack/dpdk/lib/librte_eal/common/eal_hugepages.h

41 lines
1.0 KiB
C
Raw Normal View History

2019-06-25 11:12:58 +00:00
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation
2017-04-21 10:43:26 +00:00
*/
#ifndef EAL_HUGEPAGES_H
#define EAL_HUGEPAGES_H
#include <stddef.h>
#include <stdint.h>
#include <limits.h>
#define MAX_HUGEPAGE_PATH PATH_MAX
/**
2020-06-18 16:55:50 +00:00
* Structure used to store information about hugepages that we mapped
2017-04-21 10:43:26 +00:00
* through the files in hugetlbfs.
*/
struct hugepage_file {
void *orig_va; /**< virtual addr of first mmap() */
void *final_va; /**< virtual addr of 2nd mmap() */
uint64_t physaddr; /**< physical addr */
size_t size; /**< the page size */
int socket_id; /**< NUMA socket ID */
int file_id; /**< the '%d' in HUGEFILE_FMT */
char filepath[MAX_HUGEPAGE_PATH]; /**< path to backing file on filesystem */
};
/**
2019-06-25 11:12:58 +00:00
* Read the information on what hugepages are available for the EAL to use,
* clearing out any unused ones.
2017-04-21 10:43:26 +00:00
*/
int eal_hugepage_info_init(void);
2019-06-25 11:12:58 +00:00
/**
* Read whatever information primary process has shared about hugepages into
* secondary process.
*/
int eal_hugepage_info_read(void);
2017-04-21 10:43:26 +00:00
#endif /* EAL_HUGEPAGES_H */