16
16
*/
17
17
#define SHELL_INPUT_LINE_OTHER (v ) (((v) + 1U) % 2U)
18
18
19
+ static int shell_cmd_help (__unused int argc , __unused char * * argv );
20
+ static int shell_list_vm (__unused int argc , __unused char * * argv );
21
+ static int shell_list_vcpu (__unused int argc , __unused char * * argv );
22
+ static int shell_vcpu_dumpreg (int argc , char * * argv );
23
+ static int shell_dumpmem (int argc , char * * argv );
24
+ static int shell_to_sos_console (int argc , char * * argv );
25
+ static int shell_show_cpu_int (__unused int argc , __unused char * * argv );
26
+ static int shell_show_ptdev_info (__unused int argc , __unused char * * argv );
27
+ static int shell_show_vioapic_info (int argc , char * * argv );
28
+ static int shell_show_ioapic_info (__unused int argc , __unused char * * argv );
29
+ static int shell_show_vmexit_profile (__unused int argc , __unused char * * argv );
30
+ static int shell_dump_logbuf (int argc , char * * argv );
31
+ static int shell_loglevel (int argc , char * * argv );
32
+ static int shell_cpuid (int argc , char * * argv );
33
+ static int shell_trigger_crash (int argc , char * * argv );
34
+
19
35
static struct shell_cmd shell_cmds [] = {
20
36
{
21
37
.str = SHELL_CMD_HELP ,
@@ -179,11 +195,32 @@ static int string_to_argv(char *argv_str, void *p_argv_mem,
179
195
return 0 ;
180
196
}
181
197
198
+ static struct shell_cmd * shell_find_cmd (const char * cmd_str )
199
+ {
200
+ uint32_t i ;
201
+ struct shell_cmd * p_cmd = NULL ;
202
+
203
+ for (i = 0U ; i < p_shell -> cmd_count ; i ++ ) {
204
+ p_cmd = & p_shell -> shell_cmd [i ];
205
+ if (strcmp (p_cmd -> str , cmd_str ) == 0 ) {
206
+ return p_cmd ;
207
+ }
208
+ }
209
+ return NULL ;
210
+ }
211
+
182
212
static char shell_getc (void )
183
213
{
184
214
return console_getc ();
185
215
}
186
216
217
+ static void shell_puts (const char * string_ptr )
218
+ {
219
+ /* Output the string */
220
+ (void )console_write (string_ptr , strnlen_s (string_ptr ,
221
+ SHELL_STRING_MAX_LEN ));
222
+ }
223
+
187
224
static void shell_handle_special_char (uint8_t ch )
188
225
{
189
226
switch (ch ) {
@@ -289,6 +326,51 @@ static bool shell_input_line(void)
289
326
return done ;
290
327
}
291
328
329
+ static int shell_process_cmd (char * p_input_line )
330
+ {
331
+ int status = - EINVAL ;
332
+ struct shell_cmd * p_cmd ;
333
+ char cmd_argv_str [SHELL_CMD_MAX_LEN + 1U ];
334
+ int cmd_argv_mem [sizeof (char * ) * ((SHELL_CMD_MAX_LEN + 1U ) / 2U )];
335
+ int cmd_argc ;
336
+ char * * cmd_argv ;
337
+
338
+ /* Copy the input line INTo an argument string to become part of the
339
+ * argument vector.
340
+ */
341
+ (void )strcpy_s (& cmd_argv_str [0 ], SHELL_CMD_MAX_LEN , p_input_line );
342
+ cmd_argv_str [SHELL_CMD_MAX_LEN ] = 0 ;
343
+
344
+ /* Build the argv vector from the string. The first argument in the
345
+ * resulting vector will be the command string itself.
346
+ */
347
+
348
+ /* NOTE: This process is destructive to the argument string! */
349
+
350
+ (void ) string_to_argv (& cmd_argv_str [0 ],
351
+ (void * ) & cmd_argv_mem [0 ],
352
+ sizeof (cmd_argv_mem ), (void * )& cmd_argc , & cmd_argv );
353
+
354
+ /* Determine if there is a command to process. */
355
+ if (cmd_argc != 0 ) {
356
+ /* See if command is in cmds supported */
357
+ p_cmd = shell_find_cmd (cmd_argv [0 ]);
358
+ if (p_cmd == NULL ) {
359
+ shell_puts ("\r\nError: Invalid command.\r\n" );
360
+ return - EINVAL ;
361
+ }
362
+
363
+ status = p_cmd -> fcn (cmd_argc , & cmd_argv [0 ]);
364
+ if (status == - EINVAL ) {
365
+ shell_puts ("\r\nError: Invalid parameters.\r\n" );
366
+ } else if (status != 0 ) {
367
+ shell_puts ("\r\nCommand launch failed.\r\n" );
368
+ }
369
+ }
370
+
371
+ return status ;
372
+ }
373
+
292
374
static int shell_process (void )
293
375
{
294
376
int status ;
@@ -323,19 +405,6 @@ static int shell_process(void)
323
405
return status ;
324
406
}
325
407
326
- struct shell_cmd * shell_find_cmd (const char * cmd_str )
327
- {
328
- uint32_t i ;
329
- struct shell_cmd * p_cmd = NULL ;
330
-
331
- for (i = 0U ; i < p_shell -> cmd_count ; i ++ ) {
332
- p_cmd = & p_shell -> shell_cmd [i ];
333
- if (strcmp (p_cmd -> str , cmd_str ) == 0 ) {
334
- return p_cmd ;
335
- }
336
- }
337
- return NULL ;
338
- }
339
408
340
409
void shell_kick (void )
341
410
{
@@ -363,66 +432,20 @@ void shell_kick(void)
363
432
}
364
433
}
365
434
366
- int shell_process_cmd (char * p_input_line )
367
- {
368
- int status = - EINVAL ;
369
- struct shell_cmd * p_cmd ;
370
- char cmd_argv_str [SHELL_CMD_MAX_LEN + 1U ];
371
- int cmd_argv_mem [sizeof (char * ) * ((SHELL_CMD_MAX_LEN + 1U ) / 2U )];
372
- int cmd_argc ;
373
- char * * cmd_argv ;
374
-
375
- /* Copy the input line INTo an argument string to become part of the
376
- * argument vector.
377
- */
378
- (void )strcpy_s (& cmd_argv_str [0 ], SHELL_CMD_MAX_LEN , p_input_line );
379
- cmd_argv_str [SHELL_CMD_MAX_LEN ] = 0 ;
380
-
381
- /* Build the argv vector from the string. The first argument in the
382
- * resulting vector will be the command string itself.
383
- */
384
-
385
- /* NOTE: This process is destructive to the argument string! */
386
-
387
- (void ) string_to_argv (& cmd_argv_str [0 ],
388
- (void * ) & cmd_argv_mem [0 ],
389
- sizeof (cmd_argv_mem ), (void * )& cmd_argc , & cmd_argv );
390
-
391
- /* Determine if there is a command to process. */
392
- if (cmd_argc != 0 ) {
393
- /* See if command is in cmds supported */
394
- p_cmd = shell_find_cmd (cmd_argv [0 ]);
395
- if (p_cmd == NULL ) {
396
- shell_puts ("\r\nError: Invalid command.\r\n" );
397
- return - EINVAL ;
398
- }
399
-
400
- status = p_cmd -> fcn (cmd_argc , & cmd_argv [0 ]);
401
- if (status == - EINVAL ) {
402
- shell_puts ("\r\nError: Invalid parameters.\r\n" );
403
- } else if (status != 0 ) {
404
- shell_puts ("\r\nCommand launch failed.\r\n" );
405
- }
406
- }
407
-
408
- return status ;
409
- }
410
435
411
436
void shell_init (void )
412
437
{
413
438
p_shell -> shell_cmd = shell_cmds ;
414
439
p_shell -> cmd_count = ARRAY_SIZE (shell_cmds );
415
440
416
- (void )strcpy_s ((void * )p_shell -> name , SHELL_NAME_MAX_LEN , "Serial" );
417
-
418
441
/* Zero fill the input buffer */
419
442
(void )memset ((void * )p_shell -> input_line [p_shell -> input_line_active ], 0U ,
420
443
SHELL_CMD_MAX_LEN + 1U );
421
444
}
422
445
423
446
#define SHELL_ROWS 10
424
447
#define MAX_INDENT_LEN 16
425
- int shell_cmd_help (__unused int argc , __unused char * * argv )
448
+ static int shell_cmd_help (__unused int argc , __unused char * * argv )
426
449
{
427
450
int spaces = 0 ;
428
451
struct shell_cmd * p_cmd = NULL ;
@@ -496,7 +519,7 @@ int shell_cmd_help(__unused int argc, __unused char **argv)
496
519
return 0 ;
497
520
}
498
521
499
- int shell_list_vm (__unused int argc , __unused char * * argv )
522
+ static int shell_list_vm (__unused int argc , __unused char * * argv )
500
523
{
501
524
char temp_str [MAX_STR_SIZE ];
502
525
struct list_head * pos ;
@@ -534,7 +557,7 @@ int shell_list_vm(__unused int argc, __unused char **argv)
534
557
return 0 ;
535
558
}
536
559
537
- int shell_list_vcpu (__unused int argc , __unused char * * argv )
560
+ static int shell_list_vcpu (__unused int argc , __unused char * * argv )
538
561
{
539
562
char temp_str [MAX_STR_SIZE ];
540
563
struct list_head * pos ;
@@ -584,7 +607,7 @@ int shell_list_vcpu(__unused int argc, __unused char **argv)
584
607
}
585
608
586
609
#define DUMPREG_SP_SIZE 32
587
- int shell_vcpu_dumpreg (int argc , char * * argv )
610
+ static int shell_vcpu_dumpreg (int argc , char * * argv )
588
611
{
589
612
int status = 0 ;
590
613
uint16_t vm_id ;
@@ -702,7 +725,7 @@ int shell_vcpu_dumpreg(int argc, char **argv)
702
725
}
703
726
704
727
#define MAX_MEMDUMP_LEN (32U*8U)
705
- int shell_dumpmem (int argc , char * * argv )
728
+ static int shell_dumpmem (int argc , char * * argv )
706
729
{
707
730
uint64_t addr ;
708
731
uint64_t * ptr ;
@@ -746,7 +769,7 @@ int shell_dumpmem(int argc, char **argv)
746
769
return 0 ;
747
770
}
748
771
749
- int shell_to_sos_console (__unused int argc , __unused char * * argv )
772
+ static int shell_to_sos_console (__unused int argc , __unused char * * argv )
750
773
{
751
774
char temp_str [TEMP_STR_SIZE ];
752
775
uint16_t guest_no = 0U ;
@@ -782,7 +805,7 @@ int shell_to_sos_console(__unused int argc, __unused char **argv)
782
805
return 0 ;
783
806
}
784
807
785
- int shell_show_cpu_int (__unused int argc , __unused char * * argv )
808
+ static int shell_show_cpu_int (__unused int argc , __unused char * * argv )
786
809
{
787
810
char * temp_str = alloc_page ();
788
811
@@ -798,7 +821,7 @@ int shell_show_cpu_int(__unused int argc, __unused char **argv)
798
821
return 0 ;
799
822
}
800
823
801
- int shell_show_ptdev_info (__unused int argc , __unused char * * argv )
824
+ static int shell_show_ptdev_info (__unused int argc , __unused char * * argv )
802
825
{
803
826
char * temp_str = alloc_page ();
804
827
@@ -814,7 +837,7 @@ int shell_show_ptdev_info(__unused int argc, __unused char **argv)
814
837
return 0 ;
815
838
}
816
839
817
- int shell_show_vioapic_info (int argc , char * * argv )
840
+ static int shell_show_vioapic_info (int argc , char * * argv )
818
841
{
819
842
char * temp_str = alloc_page ();
820
843
uint16_t vmid ;
@@ -842,7 +865,7 @@ int shell_show_vioapic_info(int argc, char **argv)
842
865
return - EINVAL ;
843
866
}
844
867
845
- int shell_show_ioapic_info (__unused int argc , __unused char * * argv )
868
+ static int shell_show_ioapic_info (__unused int argc , __unused char * * argv )
846
869
{
847
870
char * temp_str = alloc_pages (2U );
848
871
@@ -858,7 +881,7 @@ int shell_show_ioapic_info(__unused int argc, __unused char **argv)
858
881
return 0 ;
859
882
}
860
883
861
- int shell_show_vmexit_profile (__unused int argc , __unused char * * argv )
884
+ static int shell_show_vmexit_profile (__unused int argc , __unused char * * argv )
862
885
{
863
886
char * temp_str = alloc_pages (2U );
864
887
@@ -874,7 +897,7 @@ int shell_show_vmexit_profile(__unused int argc, __unused char **argv)
874
897
return 0 ;
875
898
}
876
899
877
- int shell_dump_logbuf (int argc , char * * argv )
900
+ static int shell_dump_logbuf (int argc , char * * argv )
878
901
{
879
902
uint16_t pcpu_id ;
880
903
int val ;
@@ -891,7 +914,7 @@ int shell_dump_logbuf(int argc, char **argv)
891
914
return - EINVAL ;
892
915
}
893
916
894
- int shell_loglevel (int argc , char * * argv )
917
+ static int shell_loglevel (int argc , char * * argv )
895
918
{
896
919
char str [MAX_STR_SIZE ] = {0 };
897
920
@@ -912,7 +935,7 @@ int shell_loglevel(int argc, char **argv)
912
935
return 0 ;
913
936
}
914
937
915
- int shell_cpuid (int argc , char * * argv )
938
+ static int shell_cpuid (int argc , char * * argv )
916
939
{
917
940
char str [MAX_STR_SIZE ] = {0 };
918
941
uint32_t leaf , subleaf = 0 ;
@@ -939,7 +962,7 @@ int shell_cpuid(int argc, char **argv)
939
962
return 0 ;
940
963
}
941
964
942
- int shell_trigger_crash (int argc , char * * argv )
965
+ static int shell_trigger_crash (int argc , char * * argv )
943
966
{
944
967
char str [MAX_STR_SIZE ] = {0 };
945
968
@@ -951,12 +974,3 @@ int shell_trigger_crash(int argc, char **argv)
951
974
952
975
return 0 ;
953
976
}
954
-
955
- void shell_puts (const char * string_ptr )
956
- {
957
- /* Output the string */
958
- (void )console_write (string_ptr , strnlen_s (string_ptr ,
959
- SHELL_STRING_MAX_LEN ));
960
- }
961
-
962
-
0 commit comments