From 53f06a0148cd7ece2d48a3396e3e63f248d066e9 Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Mon, 30 Mar 2020 08:12:57 +0200 Subject: vlib: move pci api types from vnet/pci to vlib/pci Type: fix Signed-off-by: Jakub Grajciar Change-Id: I1a60809a8bbbbb8ac8b65ab990d51aae1229647f Signed-off-by: Jakub Grajciar --- src/cmake/api.cmake | 3 +- src/vlib/CMakeLists.txt | 7 +++++ src/vlib/pci/pci_types.api | 24 +++++++++++++++ src/vlib/pci/pci_types_api.c | 45 ++++++++++++++++++++++++++++ src/vlib/pci/pci_types_api.h | 27 +++++++++++++++++ src/vnet/CMakeLists.txt | 14 --------- src/vnet/devices/virtio/virtio.api | 2 +- src/vnet/devices/virtio/virtio_api.c | 2 +- src/vnet/pci/pci_types.api | 24 --------------- src/vnet/pci/pci_types_api.c | 57 ------------------------------------ src/vnet/pci/pci_types_api.h | 27 ----------------- 11 files changed, 106 insertions(+), 126 deletions(-) create mode 100644 src/vlib/pci/pci_types.api create mode 100644 src/vlib/pci/pci_types_api.c create mode 100644 src/vlib/pci/pci_types_api.h delete mode 100644 src/vnet/pci/pci_types.api delete mode 100644 src/vnet/pci/pci_types_api.c delete mode 100644 src/vnet/pci/pci_types_api.h diff --git a/src/cmake/api.cmake b/src/cmake/api.cmake index c936f731632..fe2cad6bc46 100644 --- a/src/cmake/api.cmake +++ b/src/cmake/api.cmake @@ -150,6 +150,5 @@ function(vpp_add_api_files name dir component) endfunction() add_custom_target(api_headers - DEPENDS vlibmemory_api_headers vnet_api_headers vpp_api_headers + DEPENDS vlibmemory_api_headers vnet_api_headers vpp_api_headers vlib_api_headers ) - diff --git a/src/vlib/CMakeLists.txt b/src/vlib/CMakeLists.txt index cc27d886675..c2a0d63f4d8 100644 --- a/src/vlib/CMakeLists.txt +++ b/src/vlib/CMakeLists.txt @@ -63,6 +63,7 @@ add_vpp_library(vlib node_cli.c node_format.c pci/pci.c + pci/pci_types_api.c physmem.c punt.c punt_node.c @@ -103,6 +104,7 @@ add_vpp_library(vlib node.h pci/pci_config.h pci/pci.h + pci/pci_types_api.h physmem_funcs.h physmem.h punt.h @@ -116,5 +118,10 @@ add_vpp_library(vlib vlib.h vmbus/vmbus.h + API_FILES + pci/pci_types.api + LINK_LIBRARIES vppinfra svm ${VMBUS_LIBS} ${CMAKE_DL_LIBS} + + DEPENDS api_headers ) diff --git a/src/vlib/pci/pci_types.api b/src/vlib/pci/pci_types.api new file mode 100644 index 00000000000..d3654af536c --- /dev/null +++ b/src/vlib/pci/pci_types.api @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +option version = "1.0.0"; + +typedef pci_address +{ + u16 domain; + u8 bus; + u8 slot; + u8 function; +}; diff --git a/src/vlib/pci/pci_types_api.c b/src/vlib/pci/pci_types_api.c new file mode 100644 index 00000000000..025548aec13 --- /dev/null +++ b/src/vlib/pci/pci_types_api.c @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +void +pci_address_decode (const vl_api_pci_address_t * in, vlib_pci_addr_t * out) +{ + out->domain = in->domain; + out->bus = in->bus; + out->slot = in->slot; + out->function = in->function; +} + +void +pci_address_encode (const vlib_pci_addr_t * in, vl_api_pci_address_t * out) +{ + out->domain = in->domain; + out->bus = in->bus; + out->slot = in->slot; + out->function = in->function; +} + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/vlib/pci/pci_types_api.h b/src/vlib/pci/pci_types_api.h new file mode 100644 index 00000000000..16e126d5c99 --- /dev/null +++ b/src/vlib/pci/pci_types_api.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __PCI_TYPES_API_H__ +#define __PCI_TYPES_API_H__ + +#include +#include + +struct _vl_api_pci_address; + +extern void pci_address_decode (const struct _vl_api_pci_address * in, vlib_pci_addr_t * out); +extern void pci_address_encode (const vlib_pci_addr_t * in, struct _vl_api_pci_address * out); + +#endif /* PCI_TYPES_API_H */ diff --git a/src/vnet/CMakeLists.txt b/src/vnet/CMakeLists.txt index 95068f96e9a..1574c3daa70 100644 --- a/src/vnet/CMakeLists.txt +++ b/src/vnet/CMakeLists.txt @@ -1515,20 +1515,6 @@ list(APPEND VNET_HEADERS list(APPEND VNET_API_FILES syslog/syslog.api) -############################################################################## -# PCI -############################################################################## - -list (APPEND VNET_SOURCES - pci/pci_types_api.c -) - -list(APPEND VNET_HEADERS - pci/pci_types_api.h -) - -list(APPEND VNET_API_FILES pci/pci_types.api) - ############################################################################## # Tunnel Endpoint Information Base ############################################################################## diff --git a/src/vnet/devices/virtio/virtio.api b/src/vnet/devices/virtio/virtio.api index efbcba8fa43..34f00fad22c 100644 --- a/src/vnet/devices/virtio/virtio.api +++ b/src/vnet/devices/virtio/virtio.api @@ -17,7 +17,7 @@ option version = "2.0.0"; import "vnet/interface_types.api"; import "vnet/ethernet/ethernet_types.api"; -import "vnet/pci/pci_types.api"; +import "vlib/pci/pci_types.api"; /** \brief Initialize a new virtio pci interface with the given parameters diff --git a/src/vnet/devices/virtio/virtio_api.c b/src/vnet/devices/virtio/virtio_api.c index 4d98e725fde..96ed927dc38 100644 --- a/src/vnet/devices/virtio/virtio_api.c +++ b/src/vnet/devices/virtio/virtio_api.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include diff --git a/src/vnet/pci/pci_types.api b/src/vnet/pci/pci_types.api deleted file mode 100644 index d3654af536c..00000000000 --- a/src/vnet/pci/pci_types.api +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -option version = "1.0.0"; - -typedef pci_address -{ - u16 domain; - u8 bus; - u8 slot; - u8 function; -}; diff --git a/src/vnet/pci/pci_types_api.c b/src/vnet/pci/pci_types_api.c deleted file mode 100644 index 5d1abec5af8..00000000000 --- a/src/vnet/pci/pci_types_api.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -#define vl_typedefs /* define message structures */ -#include -#undef vl_typedefs - -#define vl_endianfun /* define message structures */ -#include -#undef vl_endianfun - -/* instantiate all the print functions we know about */ -#define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) -#define vl_printfun -#include -#undef vl_printfun - -void -pci_address_decode (const vl_api_pci_address_t * in, vlib_pci_addr_t * out) -{ - out->domain = in->domain; - out->bus = in->bus; - out->slot = in->slot; - out->function = in->function; -} - -void -pci_address_encode (const vlib_pci_addr_t * in, vl_api_pci_address_t * out) -{ - out->domain = in->domain; - out->bus = in->bus; - out->slot = in->slot; - out->function = in->function; -} - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "gnu") - * End: - */ diff --git a/src/vnet/pci/pci_types_api.h b/src/vnet/pci/pci_types_api.h deleted file mode 100644 index 16e126d5c99..00000000000 --- a/src/vnet/pci/pci_types_api.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __PCI_TYPES_API_H__ -#define __PCI_TYPES_API_H__ - -#include -#include - -struct _vl_api_pci_address; - -extern void pci_address_decode (const struct _vl_api_pci_address * in, vlib_pci_addr_t * out); -extern void pci_address_encode (const vlib_pci_addr_t * in, struct _vl_api_pci_address * out); - -#endif /* PCI_TYPES_API_H */ -- cgit 1.2.3-korg