Revision e4379628 core/src/aos_system.c

View differences:

core/src/aos_system.c
594 594
  // handle argument
595 595
  else {
596 596
    if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--hibernate") == 0) {
597
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_HIBERNATE);
597
      // broadcast shutdown event
598
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_HIBERNATE);
599
      // set terminate flag so no further prompt will be printed
598 600
      chThdTerminate(chThdGetSelfX());
599 601
      return AOS_OK;
600 602
    }
601 603
    else if (strcmp(argv[1], "-d") == 0 || strcmp(argv[1], "--deepsleep") == 0) {
602
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_DEEPSLEEP);
604
      // broadcast shutdown event
605
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_DEEPSLEEP);
606
      // set terminate flag so no further prompt will be printed
603 607
      chThdTerminate(chThdGetSelfX());
604 608
      return AOS_OK;
605 609
    }
606 610
    else if (strcmp(argv[1], "-t") == 0 || strcmp(argv[1], "--transportation") == 0) {
607
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_TRANSPORTATION);
611
      // broadcast shutdown event
612
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_TRANSPORTATION);
613
      // set terminate flag so no further prompt will be printed
608 614
      chThdTerminate(chThdGetSelfX());
609 615
      return AOS_OK;
610 616
    }
611 617
    else if (strcmp(argv[1], "-r") == 0 || strcmp(argv[1], "--restart") == 0) {
612
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_RESTART);
618
      // broadcast shutdown event
619
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_RESTART);
620
      // set terminate flag so no further prompt will be printed
613 621
      chThdTerminate(chThdGetSelfX());
614 622
      return AOS_OK;
615 623
    }
......
622 630
  (void)argv;
623 631
  (void)argc;
624 632

  
625
  chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN);
633
  chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_MASK);
626 634
  chThdTerminate(chThdGetSelfX());
627 635
  return AOS_OK;
628 636
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
629 637
}
630 638

  
631 639
#if (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
640

  
632 641
/**
633 642
 * @brief   Callback function for the kernel:test shell command.
634 643
 *
......
1039 1048

  
1040 1049
  switch (shutdown) {
1041 1050
    case AOS_SHUTDOWN_PASSIVE:
1042
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN);
1051
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_SHUTDOWN_PASSIVE);
1043 1052
      aosprintf("shutdown request received...\n");
1044 1053
      break;
1045 1054
    case AOS_SHUTDOWN_HIBERNATE:
1046
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_HIBERNATE);
1047 1055
      aosprintf("shutdown to hibernate mode...\n");
1048 1056
      break;
1049 1057
    case AOS_SHUTDOWN_DEEPSLEEP:
1050
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_DEEPSLEEP);
1051 1058
      aosprintf("shutdown to deepsleep mode...\n");
1052 1059
      break;
1053 1060
    case AOS_SHUTDOWN_TRANSPORTATION:
1054
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_TRANSPORTATION);
1055 1061
      aosprintf("shutdown to transportation mode...\n");
1056 1062
      break;
1057 1063
    case AOS_SHUTDOWN_RESTART:
1058
      chEvtBroadcastFlags(&aos.events.os, AOS_SYSTEM_EVENTFLAGS_RESTART);
1059 1064
      aosprintf("restarting system...\n");
1060 1065
      break;
1061 1066
    // must never occur

Also available in: Unified diff