28 #include <sys/types.h> 36 #include <tas_ll_connect.h> 37 #include <tas_memif.h> 39 static void *map_region(
const char *name,
size_t len);
40 static void *map_region_huge(
const char *name,
size_t len)
41 __attribute__((used));
45 int flexnic_driver_connect(
struct flexnic_info **p_info,
void **p_mem_start)
53 fprintf(stderr,
"flexnic_driver_connect: already connected\n");
59 perror(
"flexnic_driver_connect: map_region info failed");
67 goto error_unmap_info;
77 perror(
"flexnic_driver_connect: mapping dma memory failed");
78 goto error_unmap_info;
91 int flexnic_driver_internal(
void **int_mem_start)
96 fprintf(stderr,
"flexnic_driver_internal: driver not connected\n");
107 perror(
"flexnic_driver_internal: map_region failed");
115 static void *map_region(
const char *name,
size_t len)
120 if ((fd = shm_open(name, O_RDWR, 0)) == -1) {
121 perror(
"map_region: shm_open memory failed");
124 m = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, fd, 0);
126 if (m == (
void *) -1) {
127 perror(
"flexnic_driver_connect: mmap failed");
134 static void *map_region_huge(
const char *name,
size_t len)
140 snprintf(path,
sizeof(path),
"%s/%s", FLEXNIC_HUGE_PREFIX, name);
142 if ((fd = open(path, O_RDWR)) == -1) {
143 perror(
"map_region: shm_open memory failed");
146 m = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, fd, 0);
148 if (m == (
void *) -1) {
149 perror(
"flexnic_driver_connect: mmap failed");
#define FLEXNIC_NAME_INFO
#define FLEXNIC_FLAG_READY
#define FLEXNIC_NAME_INTERNAL_MEM
uint64_t internal_mem_size
#define FLEXNIC_NAME_DMA_MEM
#define FLEXNIC_INFO_BYTES
#define FLEXNIC_FLAG_HUGEPAGES