NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_transport_common.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 NVIDIA CORPORATION AND AFFILIATES. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  */
25 
26 #ifndef DOCA_TRANSPORT_COMMON_H_
27 #define DOCA_TRANSPORT_COMMON_H_
28 
29 #include <stdint.h>
30 
31 #define RPC_RETURN_STATUS_SUCCESS 0
32 #define RPC_RETURN_STATUS_ERROR 1
33 #define MAX_NUM_COMCH_MSGS 1024
34 
42 };
43 
44 struct comch_msg {
45  enum comch_msg_type type;
46  union {
47  struct {
48  uint64_t db;
49  uint64_t cookie;
51  struct {
52  uint64_t cookie;
54  struct {
55  uint64_t db;
56  uint64_t cookie;
58  struct {
59  uint64_t cookie;
61  struct {
62  uint64_t db_user_data;
63  uint32_t db_value;
65  };
66 } __attribute__((__packed__, aligned(8)));
67 
68 struct io_thread_arg {
71  uint64_t dpa_producer;
72  uint64_t dpa_consumer;
73  uint64_t dpa_db_comp;
74  uint64_t dpa_msix;
75 } __attribute__((__packed__, aligned(8)));
76 
77 #endif /* DOCA_TRANSPORT_COMMON_H_ */
comch_msg_type
Definition: dma_copy_core.h:48
struct comch_msg __attribute__((__packed__, aligned(8)))
@ COMCH_MSG_TYPE_RAISE_MSIX
@ COMCH_MSG_TYPE_BIND_SQ_DB_DONE
@ COMCH_MSG_TYPE_HOST_DB
@ COMCH_MSG_TYPE_UNBIND_SQ_DB_DONE
@ COMCH_MSG_TYPE_UNBIND_SQ_DB
@ COMCH_MSG_TYPE_BIND_SQ_DB
struct comch_msg::@18::@19 bind_sq_db_data
uint64_t db_user_data
struct comch_msg::@18::@20 bind_sq_db_done_data
enum comch_msg_type type
Definition: dma_copy_core.h:73
struct comch_msg::@18::@23 host_db_data
struct comch_msg::@18::@21 unbind_sq_db_data
struct comch_msg::@18::@22 unbind_sq_db_done_data