diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2019-09-26 10:34:41 +0200 |
---|---|---|
committer | Jakub Grajciar <jgrajcia@cisco.com> | 2020-01-03 11:44:17 +0100 |
commit | 2c504f89c662629be5548d26d65e09e35726927e (patch) | |
tree | 715a9601340bd237006b86dfed73e3c45c5bb34b /src/vnet/pci | |
parent | 4b76c58be0eca6b2b5b97e4fdad9768fad071ff1 (diff) |
devices: virtio API cleanup
Use consistent API types.
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I38a409af770c88c1eb2c68b24abef2a5a91e1b9a
Diffstat (limited to 'src/vnet/pci')
-rw-r--r-- | src/vnet/pci/pci_types.api | 24 | ||||
-rw-r--r-- | src/vnet/pci/pci_types_api.c | 57 | ||||
-rw-r--r-- | src/vnet/pci/pci_types_api.h | 27 |
3 files changed, 108 insertions, 0 deletions
diff --git a/src/vnet/pci/pci_types.api b/src/vnet/pci/pci_types.api new file mode 100644 index 00000000000..d3654af536c --- /dev/null +++ b/src/vnet/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/vnet/pci/pci_types_api.c b/src/vnet/pci/pci_types_api.c new file mode 100644 index 00000000000..5d1abec5af8 --- /dev/null +++ b/src/vnet/pci/pci_types_api.c @@ -0,0 +1,57 @@ +/* + * 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 <vlibapi/api_types.h> +#include <vnet/pci/pci_types_api.h> + +#define vl_typedefs /* define message structures */ +#include <vnet/vnet_all_api_h.h> +#undef vl_typedefs + +#define vl_endianfun /* define message structures */ +#include <vnet/vnet_all_api_h.h> +#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 <vnet/vnet_all_api_h.h> +#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 new file mode 100644 index 00000000000..16e126d5c99 --- /dev/null +++ b/src/vnet/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 <vlibapi/api_types.h> +#include <vlib/pci/pci.h> + +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 */ |