Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: top/main.c

Issue 1437453002: [kernel][ports] Add basic ports functionality (Closed) Base URL: https://github.com/travisg/lk.git@master
Patch Set: more tests Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« kernel/port.c ('K') | « kernel/rules.mk ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013-2015 Travis Geiselbrecht 2 * Copyright (c) 2013-2015 Travis Geiselbrecht
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining 4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files 5 * a copy of this software and associated documentation files
6 * (the "Software"), to deal in the Software without restriction, 6 * (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge, 7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software, 8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so, 9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions: 10 * subject to the following conditions:
(...skipping 18 matching lines...) Expand all
29 #include <debug.h> 29 #include <debug.h>
30 #include <string.h> 30 #include <string.h>
31 #include <app.h> 31 #include <app.h>
32 #include <arch.h> 32 #include <arch.h>
33 #include <platform.h> 33 #include <platform.h>
34 #include <target.h> 34 #include <target.h>
35 #include <lib/heap.h> 35 #include <lib/heap.h>
36 #include <kernel/mutex.h> 36 #include <kernel/mutex.h>
37 #include <kernel/novm.h> 37 #include <kernel/novm.h>
38 #include <kernel/thread.h> 38 #include <kernel/thread.h>
39 #include <kernel/port.h>
39 #include <lk/init.h> 40 #include <lk/init.h>
40 #include <lk/main.h> 41 #include <lk/main.h>
41 42
42 /* saved boot arguments from whoever loaded the system */ 43 /* saved boot arguments from whoever loaded the system */
43 ulong lk_boot_args[4]; 44 ulong lk_boot_args[4];
44 45
45 extern void *__ctor_list; 46 extern void *__ctor_list;
46 extern void *__ctor_end; 47 extern void *__ctor_end;
47 extern int __bss_start; 48 extern int __bss_start;
48 extern int _end; 49 extern int _end;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 heap_init(); 110 heap_init();
110 111
111 // deal with any static constructors 112 // deal with any static constructors
112 dprintf(SPEW, "calling constructors\n"); 113 dprintf(SPEW, "calling constructors\n");
113 call_constructors(); 114 call_constructors();
114 115
115 // initialize the kernel 116 // initialize the kernel
116 lk_primary_cpu_init_level(LK_INIT_LEVEL_HEAP, LK_INIT_LEVEL_KERNEL - 1); 117 lk_primary_cpu_init_level(LK_INIT_LEVEL_HEAP, LK_INIT_LEVEL_KERNEL - 1);
117 kernel_init(); 118 kernel_init();
118 119
120 // initialize the named ports.
121 port_init();
travisg 2015/11/19 21:26:10 Should probably just move this inside kernel_init(
cpu_(ooo_6.6-7.5) 2015/11/20 22:18:46 Done.
122
119 lk_primary_cpu_init_level(LK_INIT_LEVEL_KERNEL, LK_INIT_LEVEL_THREADING - 1) ; 123 lk_primary_cpu_init_level(LK_INIT_LEVEL_KERNEL, LK_INIT_LEVEL_THREADING - 1) ;
120 124
121 // create a thread to complete system initialization 125 // create a thread to complete system initialization
122 dprintf(SPEW, "creating bootstrap completion thread\n"); 126 dprintf(SPEW, "creating bootstrap completion thread\n");
123 thread_t *t = thread_create("bootstrap2", &bootstrap2, NULL, DEFAULT_PRIORIT Y, DEFAULT_STACK_SIZE); 127 thread_t *t = thread_create("bootstrap2", &bootstrap2, NULL, DEFAULT_PRIORIT Y, DEFAULT_STACK_SIZE);
124 t->pinned_cpu = 0; 128 t->pinned_cpu = 0;
125 thread_detach(t); 129 thread_detach(t);
126 thread_resume(t); 130 thread_resume(t);
127 131
128 // become the idle thread and enable interrupts to start the scheduler 132 // become the idle thread and enable interrupts to start the scheduler
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 thread_t *t = thread_create("secondarybootstrap2", 197 thread_t *t = thread_create("secondarybootstrap2",
194 &secondary_cpu_bootstrap2, NULL, 198 &secondary_cpu_bootstrap2, NULL,
195 DEFAULT_PRIORITY, DEFAULT_STACK_SIZE); 199 DEFAULT_PRIORITY, DEFAULT_STACK_SIZE);
196 t->pinned_cpu = i + 1; 200 t->pinned_cpu = i + 1;
197 thread_detach(t); 201 thread_detach(t);
198 secondary_bootstrap_threads[i] = t; 202 secondary_bootstrap_threads[i] = t;
199 } 203 }
200 secondary_bootstrap_thread_count = secondary_cpu_count; 204 secondary_bootstrap_thread_count = secondary_cpu_count;
201 } 205 }
202 #endif 206 #endif
OLDNEW
« kernel/port.c ('K') | « kernel/rules.mk ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698