Changes in uspace/srv/system/system.c [4285f384:77a0119] in mainline
- File:
-
- 1 edited
-
uspace/srv/system/system.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/system/system.c
r4285f384 r77a0119 35 35 */ 36 36 37 #include <devman.h> 37 38 #include <fibril.h> 38 39 #include <futil.h> … … 48 49 #include <str.h> 49 50 #include <loc.h> 51 #include <shutdown.h> 50 52 #include <str_error.h> 51 53 #include <config.h> … … 84 86 85 87 static void system_srv_conn(ipc_call_t *, void *); 86 static errno_t system_srv_shutdown(void *); 88 static errno_t system_srv_poweroff(void *); 89 static errno_t system_srv_restart(void *); 87 90 88 91 system_ops_t system_srv_ops = { 89 .shutdown = system_srv_shutdown 92 .poweroff = system_srv_poweroff, 93 .restart = system_srv_restart 90 94 }; 91 95 … … 519 523 /* Eject all volumes. */ 520 524 525 log_msg(LOG_DEFAULT, LVL_NOTE, "Ejecting volumes."); 526 521 527 rc = vol_create(&vol); 522 528 if (rc != EOK) { … … 543 549 free(part_ids); 544 550 vol_destroy(vol); 551 545 552 return EOK; 546 553 error: … … 609 616 } 610 617 611 /** System shutdownrequest.618 /** System poweroff request. 612 619 * 613 620 * @param arg Argument (sys_srv_t *) 614 621 */ 615 static errno_t system_srv_ shutdown(void *arg)622 static errno_t system_srv_poweroff(void *arg) 616 623 { 617 624 sys_srv_t *syssrv = (sys_srv_t *)arg; 618 625 errno_t rc; 619 626 620 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_ shutdown");627 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff"); 621 628 622 629 rc = system_sys_shutdown(); 623 630 if (rc != EOK) { 624 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_ shutdownfailed");631 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff failed"); 625 632 system_srv_shutdown_failed(&syssrv->srv); 626 633 } 627 634 628 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_shutdown complete"); 635 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff complete"); 636 system_srv_shutdown_complete(&syssrv->srv); 637 return EOK; 638 } 639 640 /** System restart request. 641 * 642 * @param arg Argument (sys_srv_t *) 643 */ 644 static errno_t system_srv_restart(void *arg) 645 { 646 sys_srv_t *syssrv = (sys_srv_t *)arg; 647 errno_t rc; 648 649 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart"); 650 651 rc = system_sys_shutdown(); 652 if (rc != EOK) { 653 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart failed"); 654 system_srv_shutdown_failed(&syssrv->srv); 655 } 656 657 /* Quiesce the device tree. */ 658 659 log_msg(LOG_DEFAULT, LVL_NOTE, "Quiescing devices."); 660 661 rc = devman_quiesce_devices("/hw"); 662 if (rc != EOK) { 663 log_msg(LOG_DEFAULT, LVL_ERROR, 664 "Failed to quiesce device tree."); 665 return rc; 666 } 667 668 sys_reboot(); 669 670 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart complete"); 629 671 system_srv_shutdown_complete(&syssrv->srv); 630 672 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.
