]> rtime.felk.cvut.cz Git - rtems-pluggable-edf.git/commitdiff
CBS API added. The file reps_lib.h contains the scheduler API.
authorPetr Benes <benesp16@fel.cvut.cz>
Wed, 27 Apr 2011 22:17:51 +0000 (00:17 +0200)
committerPetr Benes <benesp16@fel.cvut.cz>
Wed, 27 Apr 2011 22:17:51 +0000 (00:17 +0200)
src/edf/Makefile.omk
src/edf/reps_lib.c [new file with mode: 0644]
src/edf/reps_lib.h [new file with mode: 0644]

index a1ae978709a23823d5e68f7fad490e20121975a8..11b38bee7e28725070d88f9a0ee8dedb43c166f0 100644 (file)
@@ -3,9 +3,9 @@
 
 lib_LIBRARIES = edf
 
-include_HEADERS = scheduler_edf.h edf_types.h rbtree.h
+include_HEADERS = scheduler_edf.h edf_types.h rbtree.h reps_lib.h
 
-edf_SOURCES += scheduler_edf.c rbtree.c
+edf_SOURCES += scheduler_edf.c rbtree.c reps_lib.c
 
 #appfoo_EMBEDTARFILES = rootfs
 
diff --git a/src/edf/reps_lib.c b/src/edf/reps_lib.c
new file mode 100644 (file)
index 0000000..dcc5506
--- /dev/null
@@ -0,0 +1,55 @@
+#include "reps_lib.h"
+
+
+reps_rv reps_create_server(reps_params_t *p_params, reps_sid_t *p_sid) {
+       return REPS_E_NOT_IMPLEMENTED;
+}
+
+reps_rv reps_destroy_server(reps_sid_t sid){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_set_params(reps_sid_t sid, reps_params_t *p_params){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_attach_thread(reps_sid_t server_id, tid_t tid){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_get_sid(tid_t tid, reps_sid_t *p_sid){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_detach_thread(reps_sid_t sid, tid_t tid){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_get_exec_time (reps_sid_t sid, reps_time_t *exec_time){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_get_params(reps_sid_t sid, reps_params_t *p_params){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_get_curr_budget(reps_sid_t sid, reps_time_t *curr_budget){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_reserve_spare(reps_params_t *p_params){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_get_appr_budget (reps_sid_t sid, reps_time_t *appr_budget){
+       return REPS_E_NOT_IMPLEMENTED;  
+}
+
+reps_rv reps_init(void){
+       return REPS_OK; 
+}
+
+reps_rv reps_cleanup(void){
+       return REPS_OK; 
+}
+
diff --git a/src/edf/reps_lib.h b/src/edf/reps_lib.h
new file mode 100644 (file)
index 0000000..a3a2991
--- /dev/null
@@ -0,0 +1,65 @@
+#ifndef _REPS_LIB_H
+#define _REPS_LIB_H
+
+#include "edf_types.h"
+#include "rbtree.h"
+
+
+#define REPS_OK                        0
+#define REPS_E_MISSING_COMPONENT       1
+#define REPS_E_NOT_IMPLEMENTED         2
+
+/// server id
+typedef uint32_t reps_sid_t;
+
+/// return value
+typedef int reps_rv;
+
+typedef long reps_time_t;
+
+typedef struct {
+       long long P; 
+       long long Q;
+} reps_params_t;
+
+typedef rtems_id tid_t;
+
+
+/// creates a server == allocates an empty bandwidth in the scheduler
+reps_rv reps_create_server(reps_params_t *p_params, reps_sid_t *p_sid);
+
+reps_rv reps_destroy_server(reps_sid_t sid);
+
+/// set budget and period (e.g. when changing a resource)
+reps_rv reps_set_params(reps_sid_t sid, reps_params_t *p_params);
+
+/// when binding a thread
+reps_rv reps_attach_thread(reps_sid_t server_id, tid_t tid);
+
+/// server id dedicated to a thread
+reps_rv reps_get_sid(tid_t tid, reps_sid_t *p_sid);
+
+/// remove thread from server
+reps_rv reps_detach_thread(reps_sid_t sid, tid_t tid);
+
+/// cpu usage relative to the current server 
+reps_rv reps_get_exec_time (reps_sid_t sid, reps_time_t *exec_time);
+
+/// get params of a server (budget and period)
+reps_rv reps_get_params(reps_sid_t sid, reps_params_t *p_params);
+
+/// remaining budget for the current server instance
+reps_rv reps_get_curr_budget(reps_sid_t sid, reps_time_t *curr_budget);
+
+/// set the spare bandwidth ??
+reps_rv reps_reserve_spare(reps_params_t *p_params);
+
+/// get approved budget for subsequent server instances
+reps_rv reps_get_appr_budget (reps_sid_t sid, reps_time_t *appr_budget);
+
+reps_rv reps_init(void);
+
+reps_rv reps_cleanup(void);
+
+
+#endif /*_REPS_LIB_H*/
\ No newline at end of file