]> rtime.felk.cvut.cz Git - frescor/frsh.git/blobdiff - fres/resalloc/fra_generic.h
Additional FRA functionality implemented by virtual functions
[frescor/frsh.git] / fres / resalloc / fra_generic.h
index ac5c677864571642b9527324e780da3b54dfd941..10a500febb931f196d3efc374d9dfb015db8f14c 100644 (file)
@@ -181,6 +181,21 @@ struct fres_allocator {
        int (*apply_vres_changes)(fres_vres_t *vreses[], unsigned length, void *priv);
        /*@}*/
 
+       /** @name Feedback module support */
+       /*@{*/
+       int (*set_spare_bandwidth)(fres_vres_t *vres);
+       int (*get_desired_budget)(fres_vres_t *vres, frsh_rel_time_t *p_budget_out);
+       int (*set_desired_budget)(fres_vres_t *vres_id, frsh_rel_time_t *p_budget_in);
+       int (*get_actual_budget)(fres_vres_t *vres_id, frsh_rel_time_t *budget);
+       /*@}*/
+
+       int (*bind_thread)(fres_vres_t *vres, fosa_thread_id_t thread);
+       int (*unbind_thread)(fosa_thread_id_t thread);
+
+       int (*vres_get_job_usage)(const fres_vres_t *vres, frsh_rel_time_t *spent);
+       int (*vres_get_remaining_budget)(const fres_vres_t *vres, frsh_rel_time_t *budget);
+       int (*vres_get_usage)(const fres_vres_t *vres, frsh_rel_time_t *spent);
+
        void *priv;             /**< Pointer to allocator's private data */
 
        /**