]> xenbits.xensource.com Git - people/liuw/rumprun.git/commitdiff
allow bmk_sched_init() to pass an arg to the main function
authorAntti Kantee <pooka@iki.fi>
Tue, 21 Apr 2015 11:18:31 +0000 (11:18 +0000)
committerAntti Kantee <pooka@iki.fi>
Tue, 21 Apr 2015 11:21:22 +0000 (11:21 +0000)
include/bmk-core/sched.h
platform/baremetal/kernel.c
platform/baremetal/sched.c
platform/xen/xen/kernel.c
platform/xen/xen/sched.c

index 4193f759cebba697995c4aff0f6e0a788b6f46a4..d406e30e2beb4c1f5fed35c735cbf939d662b645 100644 (file)
@@ -38,7 +38,7 @@ struct bmk_tcb {
 
 struct bmk_thread;
 
-void   bmk_sched_init(void (*)(void));
+void   bmk_sched_init(void (*)(void *), void *);
 void   bmk_sched(void);
 void   bmk_sched_yield(void);
 
index 9459df516ac5b80dc324791d04eba96e24f36768..7e6f327786555e7896fbedf1dd56f5e1cbd8a12a 100644 (file)
@@ -187,7 +187,7 @@ parsemem(uint32_t addr, uint32_t len)
 }
 
 static void
-bmk_mainthread(void)
+bmk_mainthread(void *notused)
 {
 
        _netbsd_init();
@@ -213,7 +213,7 @@ bmk_main(struct multiboot_info *mbi)
        bmk_isr_init();
 
        /* enough already, jump to main thread */
-       bmk_sched_init(bmk_mainthread);
+       bmk_sched_init(bmk_mainthread, NULL);
 }
 
 /*
index 67159d2aeeeca5728f888b4d877e2201df650b1a..c9466c6f49fdb4725ebcb87aabaacdeefa8d28c8 100644 (file)
@@ -451,13 +451,12 @@ bmk_sched_wake(struct bmk_thread *thread)
 }
 
 void
-bmk_sched_init(void (*mainfun)(void))
+bmk_sched_init(void (*mainfun)(void *), void *arg)
 {
        struct bmk_thread *mainthread;
        struct bmk_thread initthread;
 
-       mainthread = bmk_sched_create("main", NULL, 0,
-           (void (*)(void *))mainfun, NULL, NULL, 0);
+       mainthread = bmk_sched_create("main", NULL, 0, mainfun, arg, NULL, 0);
        if (mainthread == NULL)
                bmk_platform_halt("failed to create main thread");
 
index ef3004ee8fb827ac55cd20a398ae996554db88a2..1aa2e045ee2c6e675bc80b230c44d8da7d44372b 100644 (file)
@@ -171,7 +171,7 @@ void _minios_start_kernel(start_info_t *si)
     init_gnttab();
     
     /* Init scheduler. */
-    bmk_sched_init(NULL);
+    bmk_sched_init(NULL, NULL);
  
     /* Init XenBus */
     init_xenbus();
index fd3dc363e4ee5e7d0841cca8b1aa1c840faa05f3..949d967ed96c201c5380b85884733ef2f3642b31 100644 (file)
@@ -468,7 +468,7 @@ idle_thread_fn(void *unused)
 }
 
 void
-bmk_sched_init(void (*notused)(void))
+bmk_sched_init(void (*notused)(void *), void *arg)
 {
        minios_printk("Initialising scheduler\n");