From 73a7cc545924670df00abb7576fdb4bbc993bb38 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Sun, 7 Oct 2007 12:46:19 -0400 Subject: adaptive: implement proper kernel interface Update syscalls, implement fixed-point parameter support. --- include/adaptive.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'include/adaptive.h') diff --git a/include/adaptive.h b/include/adaptive.h index a67c540..21e1dfd 100644 --- a/include/adaptive.h +++ b/include/adaptive.h @@ -1,23 +1,35 @@ #ifndef ADAPTIVE_H #define ADAPTIVE_H -#define MAX_SERVICE_LEVELS 10 +#define FP_SHIFT 16 +typedef struct +{ + long long val; +} fp_t; + +static inline fp_t f2fp(double f) +{ + return (fp_t) {f * (1 << FP_SHIFT)}; +} +#define MAX_SERVICE_LEVELS 10 typedef struct { - unsigned long exec_cost; + fp_t weight; unsigned long period; - /* fixed point */ - unsigned long utility; + fp_t value; } service_level_t; int set_service_levels(pid_t pid, unsigned int nr_levels, - service_level_t* levels); + service_level_t* levels, + fp_t *wt_y, + fp_t *wt_slope); int get_cur_service_level(void); int create_adaptive_rt_task(rt_fn_t rt_prog, void *arg, - unsigned int no_levels, service_level_t* levels); + unsigned int no_levels, service_level_t* levels, + fp_t wt_y, fp_t wt_slope); #endif -- cgit v1.2.2