[ofw] change layout of ib_send_wr for winof 2.0
Sean Hefty
sean.hefty at intel.com
Tue May 27 09:41:06 PDT 2008
>>> typedef struct _ib_send_wr
>>> {
>>> uint64_t wr_id;
>>> struct _ib_send_wr* p_next;
>>> ib_local_ds_t* ds_array;
>>> uint32_t num_ds;
>>> ib_send_opt_t send_opt;
>>> ib_wr_type_t wr_type;
>>> ib_net32_t immediate_data;
>>>
>>> union
>>> {
>>> union _send_dgrm
>>> {
>>> struct _send_ud
>>> {
>>> ib_av_handle_t h_av;
>>> ib_net32_t remote_qp;
>>> ib_net32_t remote_qkey;
>>> void* rsvd;
>>> uint16_t pkey_index;
>>>
>>> } ud;
>>>
>>> struct _send_rd
>>> {
>>> ib_net32_t remote_qp;
>>> ib_net32_t remote_qkey;
>>> ib_net32_t eecn;
>>>
>>> } rd;
>>>
>>> struct _send_raw_ether
>>> {
>>> ib_net16_t dest_lid;
>>> uint8_t path_bits;
>>> uint8_t sl;
>>> uint8_t max_static_rate;
>>> ib_net16_t ether_type;
>>>
>>> } raw_ether;
>>>
>>> struct _send_raw_ipv6
>>> {
>>> ib_net16_t dest_lid;
>>> uint8_t path_bits;
>>> uint8_t sl;
>>> uint8_t max_static_rate;
>>>
>>> } raw_ipv6;
>>>
>>> } dgrm;
>>>
>>> struct _send_remote_ops
>>> {
>>> uint64_t vaddr;
>>> net32_t rkey;
>>>
>>> } remote_ops;
>>>
>>> struct _send_atomic_ops
>>> {
>>> uint64_t vaddr;
>>> ib_net64_t atomic1;
>>> ib_net64_t atomic2;
>>> net32_t rkey;
>>>
>>> } atomic_ops;
This leaves a 32-bit pad at the end of the structure, so there's not much point
in keeping remote_ops separate from atomic_ops. I merged them back together,
which avoids any ULP code changes. The other layout changes were kept.
- Sean
More information about the ofw
mailing list