FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
vfio.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
#ifndef included_vlib_linux_vfio_h
17
#define included_vlib_linux_vfio_h
18
19
typedef
struct
20
{
21
int
group
;
22
int
fd
;
23
int
refcnt
;
24
}
linux_pci_vfio_iommu_group_t
;
25
26
typedef
struct
27
{
28
int
container_fd
;
29
30
/* VFIO */
31
int
iommu_mode
;
32
33
/* pool of IOMMU groups */
34
linux_pci_vfio_iommu_group_t
*
iommu_groups
;
35
36
/* iommu group pool index by group id hash */
37
uword
*
iommu_pool_index_by_group
;
38
39
clib_bitmap_t
*
physmem_pages_mapped
;
40
41
/* logging */
42
vlib_log_class_t
log_default
;
43
}
linux_vfio_main_t
;
44
45
extern
linux_vfio_main_t
vfio_main
;
46
47
clib_error_t
*
linux_vfio_init
(
vlib_main_t
*
vm
);
48
clib_error_t
*
vfio_map_physmem_page
(
vlib_main_t
*
vm
,
void
*
addr
);
49
clib_error_t
*
linux_vfio_group_get_device_fd
(vlib_pci_addr_t *
addr
,
50
int
*fd,
int
*is_noiommu);
51
52
format_function_t
format_vfio_region_info
;
53
54
55
#endif
/* included_vlib_linux_vfio_h */
56
57
/*
58
* fd.io coding-style-patch-verification: ON
59
*
60
* Local Variables:
61
* eval: (c-set-style "gnu")
62
* End:
63
*/
linux_vfio_group_get_device_fd
clib_error_t * linux_vfio_group_get_device_fd(vlib_pci_addr_t *addr, int *fd, int *is_noiommu)
Definition:
vfio.c:177
linux_vfio_main_t
Definition:
vfio.h:26
vm
vlib_main_t * vm
Definition:
in2out_ed.c:1582
linux_vfio_main_t::iommu_mode
int iommu_mode
Definition:
vfio.h:31
linux_vfio_main_t::log_default
vlib_log_class_t log_default
Definition:
vfio.h:42
addr
vhost_vring_addr_t addr
Definition:
vhost_user.h:111
format_function_t
u8 *() format_function_t(u8 *s, va_list *args)
Definition:
format.h:48
linux_vfio_main_t::iommu_groups
linux_pci_vfio_iommu_group_t * iommu_groups
Definition:
vfio.h:34
vlib_log_class_t
u32 vlib_log_class_t
Definition:
vlib.h:51
linux_pci_vfio_iommu_group_t
Definition:
vfio.h:19
linux_pci_vfio_iommu_group_t::fd
int fd
Definition:
vfio.h:22
linux_vfio_init
clib_error_t * linux_vfio_init(vlib_main_t *vm)
Definition:
vfio.c:240
linux_vfio_main_t::physmem_pages_mapped
clib_bitmap_t * physmem_pages_mapped
Definition:
vfio.h:39
linux_vfio_main_t::iommu_pool_index_by_group
uword * iommu_pool_index_by_group
Definition:
vfio.h:37
clib_error_t
Definition:
clib_error.h:21
linux_pci_vfio_iommu_group_t::group
int group
Definition:
vfio.h:21
vlib_main_t
Definition:
main.h:120
uword
u64 uword
Definition:
types.h:112
vfio_main
linux_vfio_main_t vfio_main
Definition:
vfio.c:35
linux_vfio_main_t::container_fd
int container_fd
Definition:
vfio.h:28
vfio_map_physmem_page
clib_error_t * vfio_map_physmem_page(vlib_main_t *vm, void *addr)
Definition:
vfio.c:38
clib_bitmap_t
uword clib_bitmap_t
Definition:
bitmap.h:50
format_vfio_region_info
format_function_t format_vfio_region_info
Definition:
vfio.h:52
linux_pci_vfio_iommu_group_t::refcnt
int refcnt
Definition:
vfio.h:23
src
vlib
linux
vfio.h
Generated on Thu Jun 3 2021 16:05:12 for FD.io VPP by
1.8.13