Simplify data object API
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
@@ -44,15 +44,6 @@ struct ocf_data_obj_caps {
|
||||
* @brief OCF data object interface declaration
|
||||
*/
|
||||
struct ocf_data_obj_ops {
|
||||
/**
|
||||
* @brief Allocate new IO for this data object
|
||||
*
|
||||
* @param[in] obj Data object for which IO is created
|
||||
* @return IO On success
|
||||
* @return NULL On failure
|
||||
*/
|
||||
struct ocf_io *(*new_io)(ocf_data_obj_t obj);
|
||||
|
||||
/**
|
||||
* @brief Submit IO on this data object
|
||||
*
|
||||
@@ -128,8 +119,11 @@ struct ocf_data_obj_properties {
|
||||
const char *name;
|
||||
/*!< The name of data object operations */
|
||||
|
||||
uint32_t io_context_size;
|
||||
/*!< Size of io context structure */
|
||||
uint32_t io_priv_size;
|
||||
/*!< Size of io private context structure */
|
||||
|
||||
uint32_t dobj_priv_size;
|
||||
/*!< Size of data object private context structure */
|
||||
|
||||
struct ocf_data_obj_caps caps;
|
||||
/*!< Data object capabilities */
|
||||
@@ -152,48 +146,10 @@ static inline struct ocf_data_obj_uuid ocf_str_to_uuid(char *str)
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get private context of data object
|
||||
*
|
||||
* @param[in] obj Data object
|
||||
*
|
||||
* @return Data object private context
|
||||
*/
|
||||
void *ocf_data_obj_get_priv(ocf_data_obj_t obj);
|
||||
|
||||
/**
|
||||
* @brief Set private context for data object
|
||||
*
|
||||
* @param[in] obj Data object
|
||||
* @param[in] priv Data object private context to be set
|
||||
*/
|
||||
void ocf_data_obj_set_priv(ocf_data_obj_t obj, void *priv);
|
||||
|
||||
/**
|
||||
* @brief Allocate new io from data object allocator
|
||||
*
|
||||
* @param[in] obj data object handle
|
||||
*
|
||||
* @return ocf_io object on success, otherwise NULL
|
||||
*/
|
||||
struct ocf_io *ocf_data_obj_new_io(ocf_data_obj_t obj);
|
||||
|
||||
/**
|
||||
* @brief Delete io from data object allocator
|
||||
*
|
||||
* @param[in] io handle to previously allocated io
|
||||
*/
|
||||
void ocf_data_obj_del_io(struct ocf_io* io);
|
||||
|
||||
/**
|
||||
* @brief Return io context data
|
||||
*
|
||||
* @param[in] io ocf io handle
|
||||
*
|
||||
* @return ocf_io private context data
|
||||
*/
|
||||
void *ocf_data_obj_get_data_from_io(struct ocf_io* io);
|
||||
|
||||
/**
|
||||
* @brief Initialize data object
|
||||
*
|
||||
* @param[in] obj data object handle
|
||||
@@ -250,6 +206,15 @@ ocf_data_obj_type_t ocf_dobj_get_type(ocf_data_obj_t obj);
|
||||
*/
|
||||
const struct ocf_data_obj_uuid *ocf_dobj_get_uuid(ocf_data_obj_t obj);
|
||||
|
||||
/**
|
||||
* @brief Get private context of data object
|
||||
*
|
||||
* @param[in] obj Data object
|
||||
*
|
||||
* @return Data object private context
|
||||
*/
|
||||
void *ocf_dobj_get_priv(ocf_data_obj_t obj);
|
||||
|
||||
/**
|
||||
* @brief Get cache handle for given data object
|
||||
*
|
||||
|
||||
35
inc/ocf_io.h
35
inc/ocf_io.h
@@ -139,24 +139,17 @@ struct ocf_io_ops {
|
||||
* @return Data vector from IO
|
||||
*/
|
||||
ctx_data_t *(*get_data)(struct ocf_io *io);
|
||||
|
||||
/**
|
||||
* @brief Increase reference counter in OCF IO
|
||||
*
|
||||
* @param[in] io OCF IO
|
||||
*/
|
||||
void (*get)(struct ocf_io *io);
|
||||
|
||||
/**
|
||||
* @brief Decrease reference counter in OCF IO
|
||||
*
|
||||
* @note If IO don't have any reference - deallocate it
|
||||
*
|
||||
* @param[in] io OCF IO
|
||||
*/
|
||||
void (*put)(struct ocf_io *io);
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Get IO private context structure
|
||||
*
|
||||
* @param[in] io OCF IO
|
||||
*
|
||||
* @return IO private context structure
|
||||
*/
|
||||
void *ocf_io_get_priv(struct ocf_io *io);
|
||||
|
||||
/**
|
||||
* @brief Configure OCF IO
|
||||
*
|
||||
@@ -184,10 +177,7 @@ static inline void ocf_io_configure(struct ocf_io *io, uint64_t addr,
|
||||
*
|
||||
* @param[in] io OCF IO
|
||||
*/
|
||||
static inline void ocf_io_get(struct ocf_io *io)
|
||||
{
|
||||
io->ops->get(io);
|
||||
}
|
||||
void ocf_io_get(struct ocf_io *io);
|
||||
|
||||
/**
|
||||
* @brief Decrease reference counter in OCF IO
|
||||
@@ -196,10 +186,7 @@ static inline void ocf_io_get(struct ocf_io *io)
|
||||
*
|
||||
* @param[in] io OCF IO
|
||||
*/
|
||||
static inline void ocf_io_put(struct ocf_io *io)
|
||||
{
|
||||
io->ops->put(io);
|
||||
}
|
||||
void ocf_io_put(struct ocf_io *io);
|
||||
|
||||
/**
|
||||
* @brief Set OCF IO completion function
|
||||
|
||||
Reference in New Issue
Block a user