@@ -422,13 +422,14 @@ static int acrnctl_do_stop(int argc, char *argv[])
422
422
s = vmmngr_find (argv [1 ]);
423
423
if (!s ) {
424
424
printf ("can't find %s\n" , argv [1 ]);
425
+ return -1 ;
425
426
}
426
427
if (s -> state == VM_CREATED ) {
427
428
printf ("%s is already (%s)\n" , argv [1 ],state_str [s -> state ]);
429
+ return -1 ;
428
430
}
429
- stop_vm (argv [1 ]);
431
+ return stop_vm (argv [1 ]);
430
432
431
- return 0 ;
432
433
}
433
434
434
435
/* Function: Delete runC configuration */
@@ -486,9 +487,11 @@ static int acrnctl_do_del(int argc, char *argv[])
486
487
s = vmmngr_find (argv [1 ]);
487
488
if (!s ) {
488
489
printf ("can't find %s\n" , argv [1 ]);
490
+ return -1 ;
489
491
}
490
492
if (s -> state != VM_CREATED ) {
491
493
printf ("can't delete %s(%s)\n" , argv [1 ],state_str [s -> state ]);
494
+ return -1 ;
492
495
}
493
496
if (snprintf (cmd , sizeof (cmd ), "rm -f %s/%s.sh" ,ACRN_CONF_PATH_ADD , argv [1 ]) >= sizeof (cmd )) {
494
497
printf ("WARN: cmd is truncated\n" );
@@ -523,39 +526,42 @@ static int acrnctl_do_start(int argc, char *argv[])
523
526
return -1 ;
524
527
}
525
528
526
- start_vm (argv [1 ]);
529
+ return start_vm (argv [1 ]);
527
530
528
- return 0 ;
529
531
}
530
532
531
533
static int acrnctl_do_pause (int argc , char * argv [])
532
534
{
533
535
struct vmmngr_struct * s ;
536
+ int ret = -1 ;
534
537
535
538
s = vmmngr_find (argv [1 ]);
536
539
if (!s ) {
537
540
printf ("Can't find vm %s\n" , argv [1 ]);
541
+ return ret ;
538
542
}
539
543
540
544
/* Send pause cmd to arcn-dm only when vm is in VM_STARTED */
541
545
switch (s -> state ) {
542
546
case VM_STARTED :
543
- pause_vm (argv [1 ]);
547
+ ret = pause_vm (argv [1 ]);
544
548
break ;
545
549
default :
546
550
printf ("%s current state %s, can't pause\n" ,argv [1 ], state_str [s -> state ]);
547
551
}
548
552
549
- return 0 ;
553
+ return ret ;
550
554
}
551
555
552
556
static int acrnctl_do_continue (int argc , char * argv [])
553
557
{
554
558
struct vmmngr_struct * s ;
559
+ int ret = -1 ;
555
560
556
561
s = vmmngr_find (argv [1 ]);
557
562
if (!s ) {
558
563
printf ("Can't find vm %s\n" , argv [1 ]);
564
+ return ret ;
559
565
}
560
566
561
567
/* Per current implemention, we can't know if vm is in paused
@@ -564,45 +570,48 @@ static int acrnctl_do_continue(int argc, char *argv[])
564
570
paused */
565
571
switch (s -> state ) {
566
572
case VM_STARTED :
567
- continue_vm (argv [1 ]);
573
+ ret = continue_vm (argv [1 ]);
568
574
break ;
569
575
default :
570
576
printf ("%s current state %s, can't continue\n" ,argv [1 ], state_str [s -> state ]);
571
577
}
572
578
573
- return 0 ;
579
+ return ret ;
574
580
}
575
581
576
582
static int acrnctl_do_suspend (int argc , char * argv [])
577
583
{
578
584
struct vmmngr_struct * s ;
585
+ int ret = -1 ;
579
586
580
587
s = vmmngr_find (argv [1 ]);
581
588
if (!s ) {
582
589
printf ("Can't find vm %s\n" , argv [1 ]);
590
+ return ret ;
583
591
}
584
592
585
593
/* Only send suspend cmd to acrn-dm now when VM_STARTED */
586
594
switch (s -> state ) {
587
595
case VM_STARTED :
588
- suspend_vm (argv [1 ]);
596
+ ret = suspend_vm (argv [1 ]);
589
597
break ;
590
598
default :
591
599
printf ("%s current state %s, can't suspend\n" ,argv [1 ], state_str [s -> state ]);
592
600
}
593
601
594
- return 0 ;
602
+ return ret ;
595
603
}
596
604
597
605
static int acrnctl_do_resume (int argc , char * argv [])
598
606
{
599
607
struct vmmngr_struct * s ;
600
608
unsigned reason = CBC_WK_RSN_BTN ;
609
+ int ret = -1 ;
601
610
602
611
s = vmmngr_find (argv [1 ]);
603
612
if (!s ) {
604
613
printf ("Can't find vm %s\n" , argv [1 ]);
605
- return -1 ;
614
+ return ret ;
606
615
}
607
616
608
617
if (argc == 3 ) {
@@ -613,14 +622,14 @@ static int acrnctl_do_resume(int argc, char *argv[])
613
622
614
623
switch (s -> state ) {
615
624
case VM_SUSPENDED :
616
- resume_vm (argv [1 ], reason );
625
+ ret = resume_vm (argv [1 ], reason );
617
626
printf ("resume %s reason(0x%x\n" , argv [1 ], reason );
618
627
break ;
619
628
default :
620
629
printf ("%s current state %s, can't resume\n" ,argv [1 ], state_str [s -> state ]);
621
630
}
622
631
623
- return 0 ;
632
+ return ret ;
624
633
}
625
634
626
635
static int wait_vm_stop (const char * vmname , unsigned int timeout )
@@ -652,26 +661,31 @@ static int wait_vm_stop(const char * vmname, unsigned int timeout)
652
661
static int acrnctl_do_reset (int argc , char * argv [])
653
662
{
654
663
struct vmmngr_struct * s ;
664
+ int ret = -1 ;
655
665
656
666
s = vmmngr_find (argv [1 ]);
657
667
if (!s ) {
658
668
printf ("Can't find vm %s\n" , argv [1 ]);
669
+ return ret ;
659
670
}
660
671
661
672
switch (s -> state ) {
662
673
case VM_STARTED :
663
674
case VM_SUSPENDED :
664
- stop_vm (argv [1 ]);
675
+ ret = stop_vm (argv [1 ]);
676
+ if (ret != 0 ) {
677
+ break ;
678
+ }
665
679
if (wait_vm_stop (argv [1 ], STOP_TIMEOUT )) {
666
680
printf ("Failed to stop %s in %u sec, reset failed\n" ,argv [1 ], STOP_TIMEOUT );
667
- return -1 ;
681
+ break ;
668
682
}
669
- start_vm (argv [1 ]);
683
+ ret = start_vm (argv [1 ]);
670
684
break ;
671
685
default :
672
686
printf ("%s current state: %s, can't reset\n" ,argv [1 ], state_str [s -> state ]);
673
687
}
674
- return 0 ;
688
+ return ret ;
675
689
}
676
690
677
691
/* Default args validation function */
0 commit comments