Lines Matching defs:entity

19  * entity */
51 /* Return a boolean value indicating whether an IO entity is valid */
54 const io_entity_t *entity = (io_entity_t *)handle;
56 return (entity != NULL) &&
57 (is_valid_dev((uintptr_t)entity->dev_handle));
83 /* Set a handle to track an entity */
84 static void set_handle(uintptr_t *handle, io_entity_t *entity)
87 *handle = (uintptr_t)entity;
91 /* Locate an entity in the pool, specified by address */
92 static int find_first_entity(const io_entity_t *entity, unsigned int *index_out)
96 if (entity_map[index] == entity) {
106 /* Allocate an entity from the pool and return a pointer to it */
107 static int allocate_entity(io_entity_t **entity)
110 assert(entity != NULL);
116 *entity = &entity_pool[index];
125 /* Release an entity back to the pool */
126 static int free_entity(const io_entity_t *entity)
130 assert(entity != NULL);
132 result = find_first_entity(entity, &index);
208 /* Open an IO entity */
216 io_entity_t *entity;
218 result = allocate_entity(&entity);
222 result = dev->funcs->open(dev, spec, entity);
225 entity->dev_handle = dev;
226 set_handle(handle, entity);
228 free_entity(entity);
234 /* Seek to a specific position in an IO entity */
240 io_entity_t *entity = (io_entity_t *)handle;
242 io_dev_info_t *dev = entity->dev_handle;
245 result = dev->funcs->seek(entity, mode, offset);
251 /* Determine the length of an IO entity */
257 io_entity_t *entity = (io_entity_t *)handle;
259 io_dev_info_t *dev = entity->dev_handle;
262 result = dev->funcs->size(entity, length);
268 /* Read data from an IO entity */
277 io_entity_t *entity = (io_entity_t *)handle;
279 io_dev_info_t *dev = entity->dev_handle;
282 result = dev->funcs->read(entity, buffer, length, length_read);
288 /* Write data to an IO entity */
297 io_entity_t *entity = (io_entity_t *)handle;
299 io_dev_info_t *dev = entity->dev_handle;
302 result = dev->funcs->write(entity, buffer, length,
310 /* Close an IO entity */
316 io_entity_t *entity = (io_entity_t *)handle;
318 io_dev_info_t *dev = entity->dev_handle;
322 result = dev->funcs->close(entity);
325 (void)free_entity(entity);