Rev 1695 | Rev 1712 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1695 | Rev 1702 | ||
|---|---|---|---|
| Line 24... | Line 24... | ||
| 24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | */ |
27 | */ |
| 28 | 28 | ||
| - | 29 | /** @addtogroup genericconsole |
|
| - | 30 | * @{ |
|
| - | 31 | */ |
|
| - | 32 | ||
| 29 | /** |
33 | /** |
| 30 | * @file cmd.c |
34 | * @file cmd.c |
| 31 | * @brief Kernel console command wrappers. |
35 | * @brief Kernel console command wrappers. |
| 32 | * |
36 | * |
| 33 | * This file is meant to contain all wrapper functions for |
37 | * This file is meant to contain all wrapper functions for |
| Line 58... | Line 62... | ||
| 58 | #include <proc/scheduler.h> |
62 | #include <proc/scheduler.h> |
| 59 | #include <proc/thread.h> |
63 | #include <proc/thread.h> |
| 60 | #include <proc/task.h> |
64 | #include <proc/task.h> |
| 61 | #include <ipc/ipc.h> |
65 | #include <ipc/ipc.h> |
| 62 | 66 | ||
| 63 | /** Data and methods for 'help' command. */ |
67 | /* Data and methods for 'help' command. */ |
| 64 | static int cmd_help(cmd_arg_t *argv); |
68 | static int cmd_help(cmd_arg_t *argv); |
| 65 | static cmd_info_t help_info = { |
69 | static cmd_info_t help_info = { |
| 66 | .name = "help", |
70 | .name = "help", |
| 67 | .description = "List of supported commands.", |
71 | .description = "List of supported commands.", |
| 68 | .func = cmd_help, |
72 | .func = cmd_help, |
| Line 81... | Line 85... | ||
| 81 | .description ="Return console back to userspace.", |
85 | .description ="Return console back to userspace.", |
| 82 | .func = cmd_continue, |
86 | .func = cmd_continue, |
| 83 | .argc = 0 |
87 | .argc = 0 |
| 84 | }; |
88 | }; |
| 85 | 89 | ||
| 86 | /** Data and methods for 'description' command. */ |
90 | /* Data and methods for 'description' command. */ |
| 87 | static int cmd_desc(cmd_arg_t *argv); |
91 | static int cmd_desc(cmd_arg_t *argv); |
| 88 | static void desc_help(void); |
92 | static void desc_help(void); |
| 89 | static char desc_buf[MAX_CMDLINE+1]; |
93 | static char desc_buf[MAX_CMDLINE+1]; |
| 90 | static cmd_arg_t desc_argv = { |
94 | static cmd_arg_t desc_argv = { |
| 91 | .type = ARG_TYPE_STRING, |
95 | .type = ARG_TYPE_STRING, |
| Line 99... | Line 103... | ||
| 99 | .func = cmd_desc, |
103 | .func = cmd_desc, |
| 100 | .argc = 1, |
104 | .argc = 1, |
| 101 | .argv = &desc_argv |
105 | .argv = &desc_argv |
| 102 | }; |
106 | }; |
| 103 | 107 | ||
| 104 | /** Data and methods for 'symaddr' command. */ |
108 | /* Data and methods for 'symaddr' command. */ |
| 105 | static int cmd_symaddr(cmd_arg_t *argv); |
109 | static int cmd_symaddr(cmd_arg_t *argv); |
| 106 | static char symaddr_buf[MAX_CMDLINE+1]; |
110 | static char symaddr_buf[MAX_CMDLINE+1]; |
| 107 | static cmd_arg_t symaddr_argv = { |
111 | static cmd_arg_t symaddr_argv = { |
| 108 | .type = ARG_TYPE_STRING, |
112 | .type = ARG_TYPE_STRING, |
| 109 | .buffer = symaddr_buf, |
113 | .buffer = symaddr_buf, |
| Line 135... | Line 139... | ||
| 135 | .func = cmd_set4, |
139 | .func = cmd_set4, |
| 136 | .argc = 2, |
140 | .argc = 2, |
| 137 | .argv = set4_argv |
141 | .argv = set4_argv |
| 138 | }; |
142 | }; |
| 139 | 143 | ||
| 140 | /** Data and methods for 'call0' command. */ |
144 | /* Data and methods for 'call0' command. */ |
| 141 | static char call0_buf[MAX_CMDLINE+1]; |
145 | static char call0_buf[MAX_CMDLINE+1]; |
| 142 | static char carg1_buf[MAX_CMDLINE+1]; |
146 | static char carg1_buf[MAX_CMDLINE+1]; |
| 143 | static char carg2_buf[MAX_CMDLINE+1]; |
147 | static char carg2_buf[MAX_CMDLINE+1]; |
| 144 | static char carg3_buf[MAX_CMDLINE+1]; |
148 | static char carg3_buf[MAX_CMDLINE+1]; |
| 145 | 149 | ||
| Line 155... | Line 159... | ||
| 155 | .func = cmd_call0, |
159 | .func = cmd_call0, |
| 156 | .argc = 1, |
160 | .argc = 1, |
| 157 | .argv = &call0_argv |
161 | .argv = &call0_argv |
| 158 | }; |
162 | }; |
| 159 | 163 | ||
| 160 | /** Data and methods for 'call1' command. */ |
164 | /* Data and methods for 'call1' command. */ |
| 161 | static int cmd_call1(cmd_arg_t *argv); |
165 | static int cmd_call1(cmd_arg_t *argv); |
| 162 | static cmd_arg_t call1_argv[] = { |
166 | static cmd_arg_t call1_argv[] = { |
| 163 | { |
167 | { |
| 164 | .type = ARG_TYPE_STRING, |
168 | .type = ARG_TYPE_STRING, |
| 165 | .buffer = call0_buf, |
169 | .buffer = call0_buf, |
| Line 177... | Line 181... | ||
| 177 | .func = cmd_call1, |
181 | .func = cmd_call1, |
| 178 | .argc = 2, |
182 | .argc = 2, |
| 179 | .argv = call1_argv |
183 | .argv = call1_argv |
| 180 | }; |
184 | }; |
| 181 | 185 | ||
| 182 | /** Data and methods for 'call2' command. */ |
186 | /* Data and methods for 'call2' command. */ |
| 183 | static int cmd_call2(cmd_arg_t *argv); |
187 | static int cmd_call2(cmd_arg_t *argv); |
| 184 | static cmd_arg_t call2_argv[] = { |
188 | static cmd_arg_t call2_argv[] = { |
| 185 | { |
189 | { |
| 186 | .type = ARG_TYPE_STRING, |
190 | .type = ARG_TYPE_STRING, |
| 187 | .buffer = call0_buf, |
191 | .buffer = call0_buf, |
| Line 204... | Line 208... | ||
| 204 | .func = cmd_call2, |
208 | .func = cmd_call2, |
| 205 | .argc = 3, |
209 | .argc = 3, |
| 206 | .argv = call2_argv |
210 | .argv = call2_argv |
| 207 | }; |
211 | }; |
| 208 | 212 | ||
| 209 | /** Data and methods for 'call3' command. */ |
213 | /* Data and methods for 'call3' command. */ |
| 210 | static int cmd_call3(cmd_arg_t *argv); |
214 | static int cmd_call3(cmd_arg_t *argv); |
| 211 | static cmd_arg_t call3_argv[] = { |
215 | static cmd_arg_t call3_argv[] = { |
| 212 | { |
216 | { |
| 213 | .type = ARG_TYPE_STRING, |
217 | .type = ARG_TYPE_STRING, |
| 214 | .buffer = call0_buf, |
218 | .buffer = call0_buf, |
| Line 237... | Line 241... | ||
| 237 | .func = cmd_call3, |
241 | .func = cmd_call3, |
| 238 | .argc = 4, |
242 | .argc = 4, |
| 239 | .argv = call3_argv |
243 | .argv = call3_argv |
| 240 | }; |
244 | }; |
| 241 | 245 | ||
| 242 | /** Data and methods for 'halt' command. */ |
246 | /* Data and methods for 'halt' command. */ |
| 243 | static int cmd_halt(cmd_arg_t *argv); |
247 | static int cmd_halt(cmd_arg_t *argv); |
| 244 | static cmd_info_t halt_info = { |
248 | static cmd_info_t halt_info = { |
| 245 | .name = "halt", |
249 | .name = "halt", |
| 246 | .description = "Halt the kernel.", |
250 | .description = "Halt the kernel.", |
| 247 | .func = cmd_halt, |
251 | .func = cmd_halt, |
| 248 | .argc = 0 |
252 | .argc = 0 |
| 249 | }; |
253 | }; |
| 250 | 254 | ||
| 251 | /** Data and methods for 'tlb' command. */ |
255 | /* Data and methods for 'tlb' command. */ |
| 252 | static int cmd_tlb(cmd_arg_t *argv); |
256 | static int cmd_tlb(cmd_arg_t *argv); |
| 253 | cmd_info_t tlb_info = { |
257 | cmd_info_t tlb_info = { |
| 254 | .name = "tlb", |
258 | .name = "tlb", |
| 255 | .description = "Print TLB of current processor.", |
259 | .description = "Print TLB of current processor.", |
| 256 | .help = NULL, |
260 | .help = NULL, |
| Line 290... | Line 294... | ||
| 290 | .description = "List slab caches.", |
294 | .description = "List slab caches.", |
| 291 | .func = cmd_slabs, |
295 | .func = cmd_slabs, |
| 292 | .argc = 0 |
296 | .argc = 0 |
| 293 | }; |
297 | }; |
| 294 | 298 | ||
| 295 | /** Data and methods for 'zones' command */ |
299 | /* Data and methods for 'zones' command */ |
| 296 | static int cmd_zones(cmd_arg_t *argv); |
300 | static int cmd_zones(cmd_arg_t *argv); |
| 297 | static cmd_info_t zones_info = { |
301 | static cmd_info_t zones_info = { |
| 298 | .name = "zones", |
302 | .name = "zones", |
| 299 | .description = "List of memory zones.", |
303 | .description = "List of memory zones.", |
| 300 | .func = cmd_zones, |
304 | .func = cmd_zones, |
| 301 | .argc = 0 |
305 | .argc = 0 |
| 302 | }; |
306 | }; |
| 303 | 307 | ||
| 304 | /** Data and methods for 'ipc_task' command */ |
308 | /* Data and methods for 'ipc_task' command */ |
| 305 | static int cmd_ipc_task(cmd_arg_t *argv); |
309 | static int cmd_ipc_task(cmd_arg_t *argv); |
| 306 | static cmd_arg_t ipc_task_argv = { |
310 | static cmd_arg_t ipc_task_argv = { |
| 307 | .type = ARG_TYPE_INT, |
311 | .type = ARG_TYPE_INT, |
| 308 | }; |
312 | }; |
| 309 | static cmd_info_t ipc_task_info = { |
313 | static cmd_info_t ipc_task_info = { |
| Line 312... | Line 316... | ||
| 312 | .func = cmd_ipc_task, |
316 | .func = cmd_ipc_task, |
| 313 | .argc = 1, |
317 | .argc = 1, |
| 314 | .argv = &ipc_task_argv |
318 | .argv = &ipc_task_argv |
| 315 | }; |
319 | }; |
| 316 | 320 | ||
| 317 | /** Data and methods for 'zone' command */ |
321 | /* Data and methods for 'zone' command */ |
| 318 | static int cmd_zone(cmd_arg_t *argv); |
322 | static int cmd_zone(cmd_arg_t *argv); |
| 319 | static cmd_arg_t zone_argv = { |
323 | static cmd_arg_t zone_argv = { |
| 320 | .type = ARG_TYPE_INT, |
324 | .type = ARG_TYPE_INT, |
| 321 | }; |
325 | }; |
| 322 | 326 | ||
| Line 326... | Line 330... | ||
| 326 | .func = cmd_zone, |
330 | .func = cmd_zone, |
| 327 | .argc = 1, |
331 | .argc = 1, |
| 328 | .argv = &zone_argv |
332 | .argv = &zone_argv |
| 329 | }; |
333 | }; |
| 330 | 334 | ||
| 331 | /** Data and methods for 'cpus' command. */ |
335 | /* Data and methods for 'cpus' command. */ |
| 332 | static int cmd_cpus(cmd_arg_t *argv); |
336 | static int cmd_cpus(cmd_arg_t *argv); |
| 333 | cmd_info_t cpus_info = { |
337 | cmd_info_t cpus_info = { |
| 334 | .name = "cpus", |
338 | .name = "cpus", |
| 335 | .description = "List all processors.", |
339 | .description = "List all processors.", |
| 336 | .help = NULL, |
340 | .help = NULL, |
| 337 | .func = cmd_cpus, |
341 | .func = cmd_cpus, |
| 338 | .argc = 0, |
342 | .argc = 0, |
| 339 | .argv = NULL |
343 | .argv = NULL |
| 340 | }; |
344 | }; |
| 341 | 345 | ||
| 342 | /** Data and methods for 'version' command. */ |
346 | /* Data and methods for 'version' command. */ |
| 343 | static int cmd_version(cmd_arg_t *argv); |
347 | static int cmd_version(cmd_arg_t *argv); |
| 344 | cmd_info_t version_info = { |
348 | cmd_info_t version_info = { |
| 345 | .name = "version", |
349 | .name = "version", |
| 346 | .description = "Print version information.", |
350 | .description = "Print version information.", |
| 347 | .help = NULL, |
351 | .help = NULL, |
| Line 797... | Line 801... | ||
| 797 | printf("The kernel will now relinquish the console.\n"); |
801 | printf("The kernel will now relinquish the console.\n"); |
| 798 | printf("Use userspace controls to redraw the screen.\n"); |
802 | printf("Use userspace controls to redraw the screen.\n"); |
| 799 | arch_release_console(); |
803 | arch_release_console(); |
| 800 | return 1; |
804 | return 1; |
| 801 | } |
805 | } |
| - | 806 | ||
| - | 807 | /** @} |
|
| - | 808 | */ |
|
| - | 809 | ||