Could you bring an example, when it doesn't work ? 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Sean Hefty
> Sent: Saturday, May 24, 2008 12:38 AM
> To: Hefty, Sean; [email protected]
> Subject: RE: [ofw] change layout of ib_send_wr for winof 2.0
> 
> Unless we separate the atomic operations into a new named 
> structure, a simple cast doesn't always work.  So at least 
> any code using atomics would need a slight modification.  If 
> I change ib_send_wr in my tree to:
> 
> 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;
>       };
> }     ib_send_wr_t;
> 
> Then only a uDAPL header file, plus the HW drivers/libraries 
> need updating.
> 
> - Sean
> 
> _______________________________________________
> ofw mailing list
> [email protected]
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> 
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to