components/open-fabrics/libibverbs/solaris_compatibility.c
changeset 2187 391c8a50fa82
parent 1887 dc9ed1510572
child 4661 353f8a998732
equal deleted inserted replaced
2186:7efbe05bf862 2187:391c8a50fa82
   369 uverbs_cache_init()
   369 uverbs_cache_init()
   370 {
   370 {
   371 	uverbs_cache_info_t	info;
   371 	uverbs_cache_info_t	info;
   372 	int			dev_num, fd, i, bufsize, hca_cnt;
   372 	int			dev_num, fd, i, bufsize, hca_cnt;
   373 	char			uverbs_devpath[MAXPATHLEN];
   373 	char			uverbs_devpath[MAXPATHLEN];
   374 #ifndef	IB_USER_VERBS_V2_IN_V1
       
   375 	sol_uverbs_info_t	*uverbs_infop;
   374 	sol_uverbs_info_t	*uverbs_infop;
   376 	sol_uverbs_hca_info_t	*hca_infop;
   375 	sol_uverbs_hca_info_t	*hca_infop;
   377 #else
       
   378 	sol_uverbs_info_v2_t	*uverbs_infop;
       
   379 	sol_uverbs_hca_info_v2_t	*hca_infop;
       
   380 #endif
       
   381 	char *buf;
   376 	char *buf;
   382 
   377 
   383 	snprintf(uverbs_devpath, MAXPATHLEN, "%s/%s%d",
   378 	snprintf(uverbs_devpath, MAXPATHLEN, "%s/%s%d",
   384 	    IB_OFS_DEVPATH_PREFIX, UVERBS_KERNEL_SYSFS_NAME_BASE,
   379 	    IB_OFS_DEVPATH_PREFIX, UVERBS_KERNEL_SYSFS_NAME_BASE,
   385 	    sol_uverbs_minor_dev);
   380 	    sol_uverbs_minor_dev);
   392 		fprintf(stderr, "sol_uverbs failed to open: %s\n",
   387 		fprintf(stderr, "sol_uverbs failed to open: %s\n",
   393 		    strerror(errno));
   388 		    strerror(errno));
   394 		goto error_exit1;
   389 		goto error_exit1;
   395 	}
   390 	}
   396 
   391 
   397 #ifndef	IB_USER_VERBS_V2_IN_V1
       
   398 	bufsize = sizeof (sol_uverbs_info_t) + sizeof (sol_uverbs_hca_info_t) *
   392 	bufsize = sizeof (sol_uverbs_info_t) + sizeof (sol_uverbs_hca_info_t) *
   399 	    MAX_HCAS;
   393 	    MAX_HCAS;
   400 #else
       
   401 	bufsize = sizeof (sol_uverbs_info_v2_t) +
       
   402 	    sizeof (sol_uverbs_hca_info_v2_t) * MAX_HCAS;
       
   403 #endif
       
   404 	buf = malloc(bufsize);
   394 	buf = malloc(bufsize);
   405 	memset(buf, 0, bufsize);
   395 	memset(buf, 0, bufsize);
   406 #ifndef	IB_USER_VERBS_V2_IN_V1
       
   407 	uverbs_infop = (sol_uverbs_info_t *)buf;
   396 	uverbs_infop = (sol_uverbs_info_t *)buf;
   408 #else
       
   409 	uverbs_infop = (sol_uverbs_info_v2_t *)buf;
       
   410 #endif
       
   411 	uverbs_infop->uverbs_hca_cnt = MAX_HCAS;
   397 	uverbs_infop->uverbs_hca_cnt = MAX_HCAS;
   412 
   398 
   413 	if (ioctl(fd, UVERBS_IOCTL_GET_HCA_INFO, uverbs_infop) != 0) {
   399 	if (ioctl(fd, UVERBS_IOCTL_GET_HCA_INFO, uverbs_infop) != 0) {
   414 		fprintf(stderr, "sol_uverbs ioctl failed: %s\n",
   400 		fprintf(stderr, "sol_uverbs ioctl failed: %s\n",
   415 		    strerror(errno));
   401 		    strerror(errno));