1pub mod ibv_opcode {
2 use paste::paste;
3 pub type Type = std::os::raw::c_int;
4 macro_rules! concat_ibv_opcode {
5 ($transport: expr, $op : expr ) => {
6 paste! {
7 pub const [<IBV_OPCODE_ $transport _ $op>]: Type = [<IBV_OPCODE_ $transport>] + [<IBV_OPCODE_ $op>] ;
8 }
9 };
10 }
11
12 pub const IBV_OPCODE_RC: Type = 0x00;
14 pub const IBV_OPCODE_UC: Type = 0x20;
15 pub const IBV_OPCODE_RD: Type = 0x40;
16 pub const IBV_OPCODE_UD: Type = 0x60;
17 pub const IBV_OPCODE_SEND_FIRST: Type = 0x00;
19 pub const IBV_OPCODE_SEND_MIDDLE: Type = 0x01;
20 pub const IBV_OPCODE_SEND_LAST: Type = 0x02;
21 pub const IBV_OPCODE_SEND_LAST_WITH_IMMEDIATE: Type = 0x03;
22 pub const IBV_OPCODE_SEND_ONLY: Type = 0x04;
23 pub const IBV_OPCODE_SEND_ONLY_WITH_IMMEDIATE: Type = 0x05;
24 pub const IBV_OPCODE_RDMA_WRITE_FIRST: Type = 0x06;
25 pub const IBV_OPCODE_RDMA_WRITE_MIDDLE: Type = 0x07;
26 pub const IBV_OPCODE_RDMA_WRITE_LAST: Type = 0x08;
27 pub const IBV_OPCODE_RDMA_WRITE_LAST_WITH_IMMEDIATE: Type = 0x09;
28 pub const IBV_OPCODE_RDMA_WRITE_ONLY: Type = 0x0a;
29 pub const IBV_OPCODE_RDMA_WRITE_ONLY_WITH_IMMEDIATE: Type = 0x0b;
30 pub const IBV_OPCODE_RDMA_READ_REQUEST: Type = 0x0c;
31 pub const IBV_OPCODE_RDMA_READ_RESPONSE_FIRST: Type = 0x0d;
32 pub const IBV_OPCODE_RDMA_READ_RESPONSE_MIDDLE: Type = 0x0e;
33 pub const IBV_OPCODE_RDMA_READ_RESPONSE_LAST: Type = 0x0f;
34 pub const IBV_OPCODE_RDMA_READ_RESPONSE_ONLY: Type = 0x10;
35 pub const IBV_OPCODE_ACKNOWLEDGE: Type = 0x11;
36 pub const IBV_OPCODE_ATOMIC_ACKNOWLEDGE: Type = 0x12;
37 pub const IBV_OPCODE_COMPARE_SWAP: Type = 0x13;
38 pub const IBV_OPCODE_FETCH_ADD: Type = 0x14;
39
40 concat_ibv_opcode!(RC, SEND_FIRST);
42 concat_ibv_opcode!(RC, SEND_MIDDLE);
43 concat_ibv_opcode!(RC, SEND_LAST);
44 concat_ibv_opcode!(RC, SEND_LAST_WITH_IMMEDIATE);
45 concat_ibv_opcode!(RC, SEND_ONLY);
46 concat_ibv_opcode!(RC, SEND_ONLY_WITH_IMMEDIATE);
47 concat_ibv_opcode!(RC, RDMA_WRITE_FIRST);
48 concat_ibv_opcode!(RC, RDMA_WRITE_MIDDLE);
49 concat_ibv_opcode!(RC, RDMA_WRITE_LAST);
50 concat_ibv_opcode!(RC, RDMA_WRITE_LAST_WITH_IMMEDIATE);
51 concat_ibv_opcode!(RC, RDMA_WRITE_ONLY);
52 concat_ibv_opcode!(RC, RDMA_WRITE_ONLY_WITH_IMMEDIATE);
53 concat_ibv_opcode!(RC, RDMA_READ_REQUEST);
54 concat_ibv_opcode!(RC, RDMA_READ_RESPONSE_FIRST);
55 concat_ibv_opcode!(RC, RDMA_READ_RESPONSE_MIDDLE);
56 concat_ibv_opcode!(RC, RDMA_READ_RESPONSE_LAST);
57 concat_ibv_opcode!(RC, RDMA_READ_RESPONSE_ONLY);
58 concat_ibv_opcode!(RC, ACKNOWLEDGE);
59 concat_ibv_opcode!(RC, ATOMIC_ACKNOWLEDGE);
60 concat_ibv_opcode!(RC, COMPARE_SWAP);
61 concat_ibv_opcode!(RC, FETCH_ADD);
62
63 concat_ibv_opcode!(UC, SEND_FIRST);
65 concat_ibv_opcode!(UC, SEND_MIDDLE);
66 concat_ibv_opcode!(UC, SEND_LAST);
67 concat_ibv_opcode!(UC, SEND_LAST_WITH_IMMEDIATE);
68 concat_ibv_opcode!(UC, SEND_ONLY);
69 concat_ibv_opcode!(UC, SEND_ONLY_WITH_IMMEDIATE);
70 concat_ibv_opcode!(UC, RDMA_WRITE_FIRST);
71 concat_ibv_opcode!(UC, RDMA_WRITE_MIDDLE);
72 concat_ibv_opcode!(UC, RDMA_WRITE_LAST);
73 concat_ibv_opcode!(UC, RDMA_WRITE_LAST_WITH_IMMEDIATE);
74 concat_ibv_opcode!(UC, RDMA_WRITE_ONLY);
75 concat_ibv_opcode!(UC, RDMA_WRITE_ONLY_WITH_IMMEDIATE);
76
77 concat_ibv_opcode!(RD, SEND_FIRST);
79 concat_ibv_opcode!(RD, SEND_MIDDLE);
80 concat_ibv_opcode!(RD, SEND_LAST);
81 concat_ibv_opcode!(RD, SEND_LAST_WITH_IMMEDIATE);
82 concat_ibv_opcode!(RD, SEND_ONLY);
83 concat_ibv_opcode!(RD, SEND_ONLY_WITH_IMMEDIATE);
84 concat_ibv_opcode!(RD, RDMA_WRITE_FIRST);
85 concat_ibv_opcode!(RD, RDMA_WRITE_MIDDLE);
86 concat_ibv_opcode!(RD, RDMA_WRITE_LAST);
87 concat_ibv_opcode!(RD, RDMA_WRITE_LAST_WITH_IMMEDIATE);
88 concat_ibv_opcode!(RD, RDMA_WRITE_ONLY);
89 concat_ibv_opcode!(RD, RDMA_WRITE_ONLY_WITH_IMMEDIATE);
90 concat_ibv_opcode!(RD, RDMA_READ_REQUEST);
91 concat_ibv_opcode!(RD, RDMA_READ_RESPONSE_FIRST);
92 concat_ibv_opcode!(RD, RDMA_READ_RESPONSE_MIDDLE);
93 concat_ibv_opcode!(RD, RDMA_READ_RESPONSE_LAST);
94 concat_ibv_opcode!(RD, RDMA_READ_RESPONSE_ONLY);
95 concat_ibv_opcode!(RD, ACKNOWLEDGE);
96 concat_ibv_opcode!(RD, ATOMIC_ACKNOWLEDGE);
97 concat_ibv_opcode!(RD, COMPARE_SWAP);
98 concat_ibv_opcode!(RD, FETCH_ADD);
99
100 concat_ibv_opcode!(UD, SEND_ONLY);
102 concat_ibv_opcode!(UD, SEND_ONLY_WITH_IMMEDIATE);
103}