예제 #1
0
/**********************************************************************
 *  Create and Initialize osm_vendor_t Object
 **********************************************************************/
osm_vendor_t *osm_vendor_new(IN osm_log_t * const p_log,
			     IN const uint32_t timeout)
{
	ib_api_status_t status;
	osm_vendor_t *p_vend;

	OSM_LOG_ENTER(p_log);

	CL_ASSERT(p_log);

	p_vend = malloc(sizeof(*p_vend));
	if (p_vend != NULL) {
		memset(p_vend, 0, sizeof(*p_vend));

		status = osm_vendor_init(p_vend, p_log, timeout);
		if (status != IB_SUCCESS) {
			osm_vendor_delete(&p_vend);
		}
	} else {
		osm_log(p_vend->p_log, OSM_LOG_ERROR,
			"osm_vendor_new: ERR 5007: "
			"Fail to allocate vendor object.\n");
	}

	OSM_LOG_EXIT(p_log);
	return (p_vend);
}
예제 #2
0
osm_vendor_t *osm_vendor_new(IN osm_log_t * const p_log,
			     IN const uint32_t timeout)
{
	ib_api_status_t status;
	osm_vendor_t *p_vend;

	OSM_LOG_ENTER(p_log);

	p_vend = malloc(sizeof(*p_vend));
	if (p_vend == NULL) {
		osm_log(p_vend->p_log, OSM_LOG_ERROR,
			"osm_vendor_new: ERR 3B04: "
			"Unable to allocate vendor object.\n");
		goto Exit;
	}

	memset(p_vend, 0, sizeof(*p_vend));

	status = osm_vendor_init(p_vend, p_log, timeout);
	if (status != IB_SUCCESS) {
		free(p_vend);
		p_vend = NULL;
	}

Exit:
	OSM_LOG_EXIT(p_log);
	return (p_vend);
}
예제 #3
0
osm_vendor_t *osm_vendor_new(IN osm_log_t * const p_log,
			     IN const uint32_t timeout)
{
	ib_api_status_t status;
	umadt_obj_t *p_umadt_obj;

	OSM_LOG_ENTER(p_log);

	p_umadt_obj = malloc(sizeof(umadt_obj_t));
	if (p_umadt_obj) {
		memset(p_umadt_obj, 0, sizeof(umadt_obj_t));

		status = osm_vendor_init((osm_vendor_t *) p_umadt_obj, p_log,
					 timeout);
		if (status != IB_SUCCESS) {
			osm_vendor_delete((osm_vendor_t **) & p_umadt_obj);
		}
	} else {
		printf
		    ("osm_vendor_construct: ERROR! Unable to create Umadt object!\n");
	}

	OSM_LOG_EXIT(p_log);

	return ((osm_vendor_t *) p_umadt_obj);
}
osm_vendor_t *osm_vendor_new(IN osm_log_t * const p_log,
			     IN const uint32_t timeout)
{
	ib_api_status_t status;
	osm_vendor_t *p_vend;
	OSM_LOG_ENTER(p_log);

	CL_ASSERT(p_log);

	p_vend = malloc(sizeof(*p_vend));
	if (p_vend != NULL) {
		memset(p_vend, 0, sizeof(*p_vend));

		status = osm_vendor_init(p_vend, p_log, timeout);
		if (status != IB_SUCCESS) {
			osm_vendor_delete(&p_vend);
		}
	}

	OSM_LOG_EXIT(p_log);
	return (p_vend);
}