diff options
Diffstat (limited to 'src/vlib/pci')
-rw-r--r-- | src/vlib/pci/pci_types.api | 24 | ||||
-rw-r--r-- | src/vlib/pci/pci_types_api.c | 45 | ||||
-rw-r--r-- | src/vlib/pci/pci_types_api.h | 27 |
3 files changed, 96 insertions, 0 deletions
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 <vlibapi/api_types.h> +#include <vlib/pci/pci_types_api.h> + +#include <vlib/pci/pci_types.api_types.h> + +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 <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 */ |