-#include "cpu_contract.h"
+#include "aqcpu_contract.h"
-int get_cpu_vres(contract_t contract, qres_sid_t *vres)
+int get_cpu_vres(struct forb_contract *contract, qres_sid_t *vres)
{
return 0;
}
-int set_cpu_vres(contract_t contract, qres_sid_t vres)
+int set_cpu_vres(struct forb_contract *contract, qres_sid_t vres)
{
return 0;
}
-int get_cpu_params(contract_t *contract, cpu_params_t *cpu_params)
+int get_cpu_params(struct forb_contract *contract, cpu_params_t *cpu_params)
{
#if 0
/* core contract parameters */
return 0;
}
-int set_cpu_params(contract_t *contract, cpu_params_t *cpu_params)
+int set_cpu_params(struct forb_contract *contract, cpu_params_t *cpu_params)
{
return 0;
}
#ifndef CPU_CONTRACT_H
#include "aquosa/qres_lib.h"
#include "timespec_usec_ops.h"
+#include "forb_contract.h"
typedef qres_params_t cpu_params_t;
-/* temporarily */
-typedef int* contract_t;
-int get_cpu_vres(contract_t contract, qres_sid_t *vres);
-int set_cpu_vres(contract_t contract, qres_sid_t vres);
+int get_cpu_vres(struct forb_contract *contract, qres_sid_t *vres);
+int set_cpu_vres(struct forb_contract *contract, qres_sid_t vres);
-int get_cpu_params(contract_t *contract, cpu_params_t *cpu_params);
-int set_cpu_params(contract_t *contract, cpu_params_t *cpu_params);
+int get_cpu_params(struct forb_contract *contract, cpu_params_t *cpu_params);
+int set_cpu_params(struct forb_contract *contract, cpu_params_t *cpu_params);
#endif /* CPU_CONTRACT_H */
-#include "frsh_scheduler.h"
-#include "cpu_contract.h"
-#include "qres_lib.h"
+#include "aquosa/qres_lib.h"
+#include "aqcpu_contract.h"
-int cpu_sched_init()
+int aqcpu_sched_init()
{
- qos_rv rv;
-
if (qres_init() != QOS_OK) {
return -1;
}
-
+
/* register to DTM */
- return 0
+ return 0;
}
-int cpu_vres_create(contract_t contract)
+int aqcpu_vres_create(struct forb_contract *contract)
{
cpu_params_t cpu_params;
qres_sid_t sid;
/* get params from contract */
get_cpu_params(contract, &cpu_params);
/* create cpu vres */
- qres_status = qres_create_server(&cpu_params, &sid);
- /* create the vres as an AQuoSA resource reservation server */
- if (qres_status == QOS_E_SYSTEM_OVERLOAD)
+ if (qres_create_server(&cpu_params, &sid) == QOS_E_SYSTEM_OVERLOAD)
return FRSH_ERR_CONTRACT_REJECTED;
else
return FRSH_ERR_INTERNAL_ERROR;
}
/*
- * cpu_vres_cancel(), cancel vres
+ * aqcpu_vres_cancel(), cancel vres
*
* The thread bound to the vres are unbound, and so, detached from their
* AQuoSA resource reservation servers and continue their execution according
* FRSH_ERR_BAD_ARGUMENT (invalid_vres)
* FRSH_ERR_INTENRAL_ERROR
*/
-int cpu_vres_cancel(contract_t contract)
+int aqcpu_vres_cancel(struct forb_contract *contract)
{
qres_sid_t sid;
+ qos_rv qres_status;
get_cpu_vres(contract, &sid);
- if (qres_destroy_server(sid) != QOS_OK)
+ qres_status = qres_destroy_server(sid);
+ if (qres_status != QOS_OK)
return FRSH_ERR_INTERNAL_ERROR;
- return FRSH_NO_ERR;
+ return -1;
}
-/* cpu_vres_change(), change some parameters of a vres
+/* aqcpu_vres_change(), change some parameters of a vres
*
* All is done (of course!) without removing the old vres and creating a new
* one, thanks to AQuoSA "change parameters" library API call, but this
* FRSH_ERR_BAD_ARGUMENT (invalid vres or not matching contract types)
* FRSH_ERR_INTENRAL_ERROR (something wrong with AQuoSA)
*/
-int cpu_change_vres(contract_t contract)
+int aqcpu_change_vres(struct forb_contract *contract)
{
cpu_params_t cpu_params;
qres_sid_t sid;
+ qos_rv qres_status;
get_cpu_vres(contract, &sid);
/* get params from contract */
get_cpu_params(contract, &cpu_params);
- /* create cpu vres */
- qres_status = qres_set_server(&cpu_params, &contract->vres);
+ /* set cpu params */
+ qres_status = qres_set_params(sid, &cpu_params);
/* create the vres as an AQuoSA resource reservation server */
if (qres_status == QOS_E_SYSTEM_OVERLOAD)
return FRSH_ERR_CONTRACT_REJECTED;
return FRSH_ERR_INTERNAL_ERROR;
}
-int cpu_sched_exit()
+int aqcpu_sched_exit()
{
qos_rv rv;
}
#if 0
-sched_ops cpu_sched_ops = {
+sched_ops aqcpu_sched_ops = {
.init = aquosa_init();
.exit = aquosa_exit();
.create_vres = aquosa_create_vres();