On Thu, 2 Jun 2005, Tom Duffy wrote:

On Thu, 2005-06-02 at 11:16 -0400, James Lentini wrote:
- in dat.h, create a public structure for each object type:

  struct dat_ep {
        struct dat_provider *provider;
  };

- in the transport provider (dapl.h) have a private structure that
   contains the public one:

   struct dapl_ep {
        struct dat_ep   dat_ep;
         ...
   };

Is that the sort of thing you were thinking of?

Yes, exactly.  Then you can create small inline functions that would
cast back and forth.

The other "issue" right now is that dapl has a header struct that needs
to come first in all the structs.  So, that would need to be changed.

I think that issue will go away if we implement the above proposal.

The dapl objects all place the dapl_header structure first so that the struct dat_provider pointer will be the first item in memory. This allows the dat_* functions to cast the user's handle to a struct dat_provider pointer and then call the appropriate provider function.

I'll do some research here and find out why the original mechanism was
chosen.

Cool.

-tduffy


_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to