Make cleaner asynchronous

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
Robert Baldyga
2019-02-15 18:39:26 +01:00
parent 276d91fcd7
commit 404b976109
12 changed files with 341 additions and 336 deletions

View File

@@ -12,15 +12,38 @@
*
*/
/**
* @brief OCF Cleaner completion
*
* @note Completion function for cleaner
*
* @param[in] cleaner Cleaner instance
* @param[in] interval Time to sleep before next cleaner iteration
*/
typedef void (*ocf_cleaner_end_t)(ocf_cleaner_t cleaner, uint32_t interval);
/**
* @brief Set cleaner completion function
*
* @param[in] cleaner Cleaner instance
* @param[in] fn Completion function
*/
void ocf_cleaner_set_cmpl(ocf_cleaner_t cleaner, ocf_cleaner_end_t fn);
/**
* @brief Set cleaner queue
*
* @param[in] cleaner Cleaner instance
* @param[in] io_queue Queue number
*/
void ocf_cleaner_set_io_queue(ocf_cleaner_t cleaner, uint32_t io_queue);
/**
* @brief Run cleaner
*
* @param[in] c Cleaner instance to run
* @param[in] io_queue I/O queue to which cleaner requests should be submitted
*
* @retval Hint when to run cleaner next time. Value expressed in miliseconds.
*/
uint32_t ocf_cleaner_run(ocf_cleaner_t c, uint32_t io_queue);
void ocf_cleaner_run(ocf_cleaner_t c);
/**
* @brief Set cleaner private data