enum ia_css_err ia_css_i_host_rmgr_acq_gen(ia_css_resource_type_t resource_type, uint32_t* resource_id)
{
	enum ia_css_err rval = IA_CSS_ERR_INTERNAL_ERROR; 

	assert((resource_type > IA_CSS_RESOURCE_START) && (resource_type < IA_CSS_RESOURCE_END));

	switch (resource_type)
	{
		case IA_CSS_RESOURCE_SP_THREAD:
		{
			return acquire_resource(&g_resource_sp_thread_pool, resource_id);
			break;
		}
	case IA_CSS_RESOURCE_HOST2SP_QUEUE:
		{
			return acquire_resource(&g_resource_queue_pool, resource_id);
			break;
		}
	default:
		{
			assert(0);  /* Resource type not implemented please add it to the list. */
			break;
		}
	}
	return rval;
}
Example #2
0
int main(void) {
  int rv = 0;
  int resource = acquire_resource();

  if (!valid(resource)) {
    goto err;
  }

  if (!process(resource)) {
    goto err;
  }

  if (0) {
  err:
    report_error();
    rv = 1;
  }

  release_resource(resource);
  return rv;
}