[ofw] Re: [ofa-general] RE: PATCH[1/6] Windows port of libibmad - mad.h

Sasha Khapyorsky sashak at voltaire.com
Sun Dec 21 13:00:50 PST 2008


On 16:10 Thu 18 Dec     , Sean Hefty wrote:
> 
> Looking at the changes, do the management developers think that it makes sense
> to share the libibmad implementation, or should separate implementations be
> maintained, similar to libibumad?  If the implementations are not shared, can
> the Linux side treat the API as an external interface, rather than a private
> interface?

I think libibmad implementations could be shared - unlike libibumad it is
almost system independent.

And again, it would be really nice if such porting will not introduce a
lot of changes, #ifdef WIN, etc.. C99 stuff looks like a problem for me
(could this be solved somehow with VC?), the rest seems doable.

Sasha

> 
> >+#if defined(_WIN32) || defined(_WIN64)
> >+#define MAD_EXPORT     __declspec(dllexport)
> >+#else
> >+#define MAD_EXPORT     extern
> 
> I don't know that 'extern' is appropriate here.
> 
> >+#endif
> >+
> > #define IB_SUBNET_PATH_HOPS_MAX        64
> >-#define IB_DEFAULT_SUBN_PREFIX 0xfe80000000000000llu
> >+#define IB_DEFAULT_SUBN_PREFIX 0xfe80000000000000ULL
> > #define IB_DEFAULT_QP1_QKEY    0x80010000
> >
> > #define IB_MAD_SIZE            256
> >@@ -620,10 +628,10 @@
> >
> >/******************************************************************************
> >/
> >
> > /* portid.c */
> >-char * portid2str(ib_portid_t *portid);
> >-int    portid2portnum(ib_portid_t *portid);
> >-int    str2drpath(ib_dr_path_t *path, char *routepath, int drslid, int
> >drdlid);
> >-char *  drpath2str(ib_dr_path_t *path, char *dstr, size_t dstr_size);
> >+MAD_EXPORT char * portid2str(ib_portid_t *portid);
> >+MAD_EXPORT int portid2portnum(ib_portid_t *portid);
> >+MAD_EXPORT int str2drpath(ib_dr_path_t *path, char *routepath, int drslid, int
> >drdlid);
> >+MAD_EXPORT char * drpath2str(ib_dr_path_t *path, char *dstr, size_t
> >dstr_size);
> >
> > static inline int
> > ib_portid_set(ib_portid_t *portid, int lid, int qp, int qkey)
> >@@ -639,77 +647,49 @@
> > /* fields.c */
> > extern ib_field_t ib_mad_f[];
> >
> >-void   _set_field(void *buf, int base_offs, ib_field_t *f, uint32_t val);
> >+void _set_field(void *buf, int base_offs, ib_field_t *f, uint32_t val);
> > uint32_t _get_field(void *buf, int base_offs, ib_field_t *f);
> >-void   _set_array(void *buf, int base_offs, ib_field_t *f, void *val);
> >-void   _get_array(void *buf, int base_offs, ib_field_t *f, void *val);
> >-void   _set_field64(void *buf, int base_offs, ib_field_t *f, uint64_t val);
> >+void _set_array(void *buf, int base_offs, ib_field_t *f, void *val);
> >+void _get_array(void *buf, int base_offs, ib_field_t *f, void *val);
> >+void _set_field64(void *buf, int base_offs, ib_field_t *f, uint64_t val);
> > uint64_t _get_field64(void *buf, int base_offs, ib_field_t *f);
> 
> Are these really the functions that should be exported from the library or in
> the header file?  (I'm probably missing some history here.)
> 
> - Sean
> 
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general



More information about the ofw mailing list