Modifications for Linux v3.14.
authorAnselm Busse <anselm.busse@tu-berlin.de>
Mon, 18 Jan 2016 15:06:37 +0000 (16:06 +0100)
committerAnselm Busse <anselm.busse@tu-berlin.de>
Wed, 20 Jan 2016 10:21:03 +0000 (11:21 +0100)
framework/include/os/linux.h
framework/os/linux/linux_sched.c

index a3cbf9a..e2c2df0 100644 (file)
@@ -371,7 +371,7 @@ u64 sched_clock_cpu(int cpu);
 
 void sched_clock_init(void);;
 
-void sched_fork(unsigned long clone_flags, struct task_struct *p);
+int sched_fork(unsigned long clone_flags, struct task_struct *p);
 
 long sched_getaffinity(pid_t pid, struct cpumask *mask);
 
index 238566a..b5b6c2b 100644 (file)
@@ -278,7 +278,7 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p)
  * kernel/sched/core.c:1622
  * fork()/clone()-time setup:
  */
-void sched_fork(unsigned long clone_flags, struct task_struct *p)
+int sched_fork(unsigned long clone_flags, struct task_struct *p)
 {
        unsigned long flags;
        int cpu = get_cpu();
@@ -319,6 +319,7 @@ void sched_fork(unsigned long clone_flags, struct task_struct *p)
 #endif
 
        put_cpu();
+       return 0;
 }
 
 /**
@@ -2402,7 +2403,7 @@ SYSCALL_DEFINE3(sched_setaffinity, pid_t, pid, unsigned int, len,
 SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid,
                struct timespec __user *, interval)
 {
-       printk("SYSCALL sched_rr_get_interval\n");
+       fw_printf("WARNING: Called 'sched_rr_get_interval'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2415,7 +2416,7 @@ SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid,
  */
 SYSCALL_DEFINE0(sched_yield)
 {
-       printk("SYSCALL sched_yield\n");
+       fw_printf("WARNING: Called 'sched_yield'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2429,6 +2430,7 @@ SYSCALL_DEFINE0(sched_yield)
 SYSCALL_DEFINE3(sched_setscheduler, pid_t, pid, int, policy,
                struct sched_param __user *, param)
 {
+       fw_printf("WARNING: Called 'sched_setscheduler'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2439,6 +2441,7 @@ SYSCALL_DEFINE3(sched_setscheduler, pid_t, pid, int, policy,
  */
 SYSCALL_DEFINE1(sched_getscheduler, pid_t, pid)
 {
+       fw_printf("WARNING: Called 'sched_getscheduler'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2452,6 +2455,7 @@ SYSCALL_DEFINE1(sched_getscheduler, pid_t, pid)
  */
 SYSCALL_DEFINE1(sched_get_priority_max, int, policy)
 {
+       fw_printf("WARNING: Called 'sched_get_priority_max'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2465,6 +2469,7 @@ SYSCALL_DEFINE1(sched_get_priority_max, int, policy)
  */
 SYSCALL_DEFINE1(sched_get_priority_min, int, policy)
 {
+       fw_printf("WARNING: Called 'sched_get_priority_min'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2476,6 +2481,7 @@ SYSCALL_DEFINE1(sched_get_priority_min, int, policy)
  */
 SYSCALL_DEFINE2(sched_setparam, pid_t, pid, struct sched_param __user *, param)
 {
+       fw_printf("WARNING: Called 'sched_setparam'; Not implemented in CoBaS");
        return 0;
 }
 
@@ -2487,6 +2493,26 @@ SYSCALL_DEFINE2(sched_setparam, pid_t, pid, struct sched_param __user *, param)
  */
 SYSCALL_DEFINE2(sched_getparam, pid_t, pid, struct sched_param __user *, param)
 {
+       fw_printf("WARNING: Called 'sched_getparam'; Not implemented in CoBaS");
+       return 0;
+}
+
+/**
+ * sys_sched_setattr - same as above, but with extended sched_attr
+ * @pid: the pid in question.
+ * @uattr: structure containing the extended parameters.
+ */
+SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr,
+                               unsigned int, flags)
+{
+       fw_printf("WARNING: Called 'sched_setattr'; Not implemented in CoBaS");
+       return 0;
+}
+
+SYSCALL_DEFINE4(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr,
+                               unsigned int, size, unsigned int, flags)
+{
+       fw_printf("WARNING: Called 'sched_getattr'; Not implemented in CoBaS");
        return 0;
 }