struct gbm_device * _gbm_create_device(int fd) { const struct gbm_backend *backend = NULL; struct gbm_device *dev = NULL; int i; const char *b; b = getenv("GBM_BACKEND"); if (b) backend = load_backend(b); if (backend) dev = backend->create_device(fd); for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) { backend = load_backend(backends[i]); if (backend == NULL) continue; fprintf(stderr, "loaded module: %s\n", backends[i]); dev = backend->create_device(fd); } return dev; }
int objstore_init(void) { int ret; vol_cache = umem_cache_create("vol", sizeof(struct objstore_vol), 0, NULL, NULL, NULL, NULL, NULL, 0); if (!vol_cache) return ENOMEM; ret = vg_init(); if (ret) goto err; ret = load_backend(&mem_backend, "mem"); if (ret) goto err; backend = &mem_backend; return 0; err: umem_cache_destroy(vol_cache); return ret; }
FFTF_SET_BACKEND_RESULT fftf_set_backend(FFTFBackendId id) { if (id == FFTF_BACKEND_NONE) { FFTFCurrentBackendId = FFTF_BACKEND_NONE; return fftf_current_backend(); } FFTF_BACKEND_ID_CHECK(id); if (FFTFBackends[id].path != NULL) { FFTFCurrentBackendId = id; return FFTF_SET_BACKEND_SUCCESS; } int result = load_backend(&FFTFBackends[id], 0); if (result == FFTF_SET_BACKEND_SUCCESS) { FFTFCurrentBackendId = id; } return result; }