[PATCH 13/16] ehca: firmware InfiniBand interface

Christoph Raisch RAISCH at de.ibm.com
Wed May 3 23:56:34 EST 2006


Paul Mackerras <paulus at samba.org> wrote on 28.04.2006 00:42:14:

> Mind you, since a lot of the parameters are used to return individual
> bytes or half-words, which are then put into structures, it might be
> better to pass the pointers to the structures and let the wrapper put
> the values straight into the structures.
>
> Paul.

As Paul already mentioned we can't change the firmware interface.

...so we would propose the following solution:
For the two h_call wrappers with more than 8 parameters we'll change to the
following signature:

hipz_h_alloc_resource_cq(const struct ipz_adapter_handle adapter_handle,
                         struct ehca_cq *cq, /* used for input and output
parameters */
                         const struct ipz_eq_handle eq_handle);

hipz_h_alloc_resource_qp(const struct ipz_adapter_handle adapter_handle,
                         struct ehca_qp * qp, /* used for input and output
parameters */
                         struct ehca_alloc_qp_params * param); /*input
params not in ehca_qp*/


hipz_h_alloc_resource_mr(const struct ipz_adapter_handle adapter_handle,
                         struct ehca_mr *mr,
                         const u64 vaddr,
                         const u64 length,
                         const u32 access_ctrl,
                         const struct ipz_pd pd);


u64 hipz_h_query_mr(const struct ipz_adapter_handle adapter_handle,
                    struct ehca_mr *mr);

u64 hipz_h_reregister_pmr(const struct ipz_adapter_handle adapter_handle,
                          struct ehca_mr *mr,
                          const u64 vaddr_in,
                          const u64 length,
                          const u32 access_ctrl,
                          const struct ipz_pd pd,
                          const u64 mr_addr_cb);

u64 hipz_h_register_smr(const struct ipz_adapter_handle adapter_handle,
                        struct ehca_mr *mr,
                        struct ehca_mr *orig_mr,
                        const u64 vaddr_in,
                        const u32 access_ctrl,
                        const struct ipz_pd pd);


What do you think about this solution?


Gruss / Regards . . . Christoph Raisch





More information about the Linuxppc-dev mailing list