Entity* EntityRepository::internal_allocate_entity(EntityKey entity_key) { Entity* new_entity = allocate_entity(m_use_pool); new_entity->set_key(entity_key); #ifdef SIERRA_MIGRATION fmwk_attributes* fmwk_attrs = allocate_fmwk_attr(m_use_pool); new_entity->m_fmwk_attrs = fmwk_attrs; #endif return new_entity; }
/* Open an IO entity */ int io_open(uintptr_t dev_handle, const uintptr_t spec, uintptr_t *handle) { int result; assert((spec != (uintptr_t)NULL) && (handle != NULL)); assert(is_valid_dev(dev_handle)); io_dev_info_t *dev = (io_dev_info_t *)dev_handle; io_entity_t *entity; result = allocate_entity(&entity); if (result == 0) { assert(dev->funcs->open != NULL); result = dev->funcs->open(dev, spec, entity); if (result == 0) { entity->dev_handle = dev; set_handle(handle, entity); } else free_entity(entity); } return result; }