[ofa-general] RE: [ofw] [RFC] 2/5: IB ACM: windows abstractions

Fab Tillier ftillier at microsoft.com
Wed Sep 16 23:35:07 PDT 2009



> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org [mailto:ofw-
> bounces at lists.openfabrics.org] On Behalf Of Sean Hefty
> Sent: Wednesday, September 16, 2009 11:28 PM
> To: Hefty, Sean; ofw at lists.openfabrics.org; OpenFabrics General
> Subject: [ofw] [RFC] 2/5: IB ACM: windows abstractions
> 
> The following abstractions are defined to support the IB ACM running on
> Windows.
> 
> An attempt was made to limit the number of dependencies on external
> libraries,
> such as complib.  We add Windows support for the Linux 'search' binary
> tree interfaces.  This is implemented on Windows using complib
> fleximap, but
> gets linked in statically.

Should we make complib a static library?  I don't know if the memory savings are that great when most users only use a fraction of the complib functionality.  If I have time I'll take a look at file sizes and report back.

> void *tsearch(const void *key, void **rootp,
> 			  int (*compar)(const void *, const void *))
> {
> 	cl_fmap_item_t *item, *map_item;
> 
> 	if (!*rootp) {
> 		*rootp = malloc(sizeof(cl_fmap_t));

You need to check that malloc returned you memory.

> 		cl_fmap_init((cl_fmap_t *) *rootp, fcompare);
> 	}
> 
> 	compare = compar;
> 	item = malloc(sizeof(cl_fmap_item_t));

Ditto.

> 	map_item = cl_fmap_insert((cl_fmap_t *) *rootp, key, item);
> 	if (map_item != item)
> 		free(item);
> 
> 	return (void *) &map_item->p_key;
> }

-Fab



More information about the general mailing list