summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGiacomo Bagnoli <g.bagnoli@asidev.com>2010-03-01 16:45:12 +0100
committerGiacomo Bagnoli <g.bagnoli@asidev.com>2010-03-01 16:45:12 +0100
commit6f4e1a6bd5adb899aa68f3449e4e9291436be7d2 (patch)
tree95cb50ee77a86d6607c5a3c52ed24f59e3d3bb87 /src
parente99154adcc1e32c0eed636ed90dc27514259adfc (diff)
Use configure to check when to enable aquosa support
Diffstat (limited to 'src')
-rw-r--r--src/rt-app.c18
-rw-r--r--src/rt-app.h5
-rw-r--r--src/rtapp_args.c6
-rw-r--r--src/rtapp_types.h11
-rw-r--r--src/rtapp_utils.c2
5 files changed, 22 insertions, 20 deletions
diff --git a/src/rt-app.c b/src/rt-app.c
index f39d326..912767b 100644
--- a/src/rt-app.c
+++ b/src/rt-app.c
@@ -54,7 +54,7 @@ void *thread_body(void *arg)
timing_point_t *timings;
timing_point_t tmp_timing;
timing_point_t *curr_timing;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
qres_time_t prev_abs_used_budget = 0;
qres_time_t abs_used_budget;
#endif
@@ -107,7 +107,7 @@ posixrtcommon:
timespec_to_usec(&data->deadline)
);
break;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
case aquosa:
data->params.Q_min = round((timespec_to_usec(&data->min_et) * (( 100.0 + data->sched_prio ) / 100)) / (data->fragment * 1.0));
data->params.Q = round((timespec_to_usec(&data->max_et) * (( 100.0 + data->sched_prio ) / 100)) / (data->fragment * 1.0));
@@ -192,7 +192,7 @@ posixrtcommon:
curr_timing->deadline = timespec_to_usec(&data->deadline);
curr_timing->duration = timespec_to_usec(&t_diff);
curr_timing->slack = timespec_to_lusec(&t_slack);
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
if (data->sched_policy == aquosa) {
curr_timing->budget = data->params.Q;
qres_get_exec_time(data->sid,
@@ -222,7 +222,7 @@ posixrtcommon:
log_info("[%d] Exiting.", data->ind);
fclose(data->log_handler);
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
if (data->sched_policy == aquosa) {
qres_destroy_server(data->sid);
qres_cleanup();
@@ -255,7 +255,7 @@ int main(int argc, char* argv[])
struct timespec t_curr, t_next, t_start;
int duration;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
int fragment;
#endif
@@ -269,7 +269,7 @@ int main(int argc, char* argv[])
{"baselog", 1, 0, 'b'},
{"gnuplot", 1, 0, 'G'},
{"duration", 1, 0, 'D'},
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
{"qos", 0, 0, 'q'},
{"frag",1, 0, 'g'},
#endif
@@ -286,7 +286,7 @@ int main(int argc, char* argv[])
threads_data = malloc( sizeof(struct thread_data));
/* parse args */
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
fragment = 1;
while (( ch = getopt_long(argc,argv,"D:Ghfrb:s:l:qg:t:",
@@ -346,7 +346,7 @@ int main(int argc, char* argv[])
if (duration < 0)
usage("Cannot set negative duration");
break;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
case 'q':
if (policy != other)
usage("Cannot set multiple policies");
@@ -397,7 +397,7 @@ int main(int argc, char* argv[])
tdata->duration = duration;
tdata->ind = i;
tdata->main_app_start = t_start;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
tdata->fragment = fragment;
#endif
if (logdir) {
diff --git a/src/rt-app.h b/src/rt-app.h
index c15d76e..696c39f 100644
--- a/src/rt-app.h
+++ b/src/rt-app.h
@@ -13,10 +13,11 @@
#include <signal.h>
#include "rtapp_types.h"
#include "rtapp_args.h"
+#include "config.h"
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
#include <aquosa/qres_lib.h>
-#endif /* AQUOSA */
+#endif /* HAVE_LIBQRESLIB */
#ifdef LOCKMEM
#include <sys/mman.h>
diff --git a/src/rtapp_args.c b/src/rtapp_args.c
index a48db9e..d6f0f82 100644
--- a/src/rtapp_args.c
+++ b/src/rtapp_args.c
@@ -13,7 +13,7 @@ usage (const char* msg)
printf("-G, --gnuplot\t:\tgenerate gnuplot script (needs -l)\n");
printf("-D, --duration\t:\ttime (in seconds) before stopping threads\n");
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
printf("-q, --qos\t:\tcreate AQuoSA reservation\n");
printf("-g, --frag\t:\tfragment for the reservation\n\n");
printf("POLICY: f=SCHED_FIFO, r=SCHED_RR, o=SCHED_OTHER, q=AQuoSA\n");
@@ -65,7 +65,7 @@ parse_thread_args(char *arg, struct thread_data *tdata, policy_t def_policy)
break;
case 2:
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
if (strcmp(token,"q") == 0)
tdata->sched_policy = aquosa;
else
@@ -131,7 +131,7 @@ parse_thread_args(char *arg, struct thread_data *tdata, policy_t def_policy)
case other:
sprintf(tdata->sched_policy_descr, "SCHED_OTHER");
break;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
case aquosa:
sprintf(tdata->sched_policy_descr, "AQuoSA");
break;
diff --git a/src/rtapp_types.h b/src/rtapp_types.h
index 49d662f..2ed5753 100644
--- a/src/rtapp_types.h
+++ b/src/rtapp_types.h
@@ -4,16 +4,17 @@
#include <sched.h>
#include <time.h>
#include <stdio.h>
-#ifdef AQUOSA
+#include "config.h"
+#ifdef HAVE_LIBQRESLIB
#include <aquosa/qres_lib.h>
-#endif /* AQUOSA */
+#endif /* HAVE_LIBQRESLIB */
typedef enum policy_t
{
other = SCHED_OTHER,
rr = SCHED_RR,
fifo = SCHED_FIFO
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
, aquosa = 1000
#endif
} policy_t;
@@ -32,7 +33,7 @@ struct thread_data {
char sched_policy_descr[16];
int sched_prio;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
int fragment;
int sid;
qres_params_t params;
@@ -50,7 +51,7 @@ typedef struct _timing_point_t {
unsigned long deadline;
unsigned long duration;
long slack;
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
qres_time_t budget;
qres_time_t used_budget;
#endif
diff --git a/src/rtapp_utils.c b/src/rtapp_utils.c
index 8c7e19b..dbcff25 100644
--- a/src/rtapp_utils.c
+++ b/src/rtapp_utils.c
@@ -104,7 +104,7 @@ log_timing(FILE *handler, timing_point_t *t)
t->duration,
t->slack
);
-#ifdef AQUOSA
+#ifdef HAVE_LIBQRESLIB
fprintf(handler,
"\t" QRES_TIME_FMT "\t" QRES_TIME_FMT,
t->budget,