Changeset f35749e in mainline for uspace/srv/system/system.c


Ignore:
Timestamp:
2025-02-28T23:38:26Z (4 days ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
8300c72
Parents:
4285f384
Message:

System restart via shutdown -r

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/system/system.c

    r4285f384 rf35749e  
    4848#include <str.h>
    4949#include <loc.h>
     50#include <shutdown.h>
    5051#include <str_error.h>
    5152#include <config.h>
     
    8485
    8586static void system_srv_conn(ipc_call_t *, void *);
    86 static errno_t system_srv_shutdown(void *);
     87static errno_t system_srv_poweroff(void *);
     88static errno_t system_srv_restart(void *);
    8789
    8890system_ops_t system_srv_ops = {
    89         .shutdown = system_srv_shutdown
     91        .poweroff = system_srv_poweroff,
     92        .restart = system_srv_restart
    9093};
    9194
     
    609612}
    610613
    611 /** System shutdown request.
     614/** System poweroff request.
    612615 *
    613616 * @param arg Argument (sys_srv_t *)
    614617 */
    615 static errno_t system_srv_shutdown(void *arg)
     618static errno_t system_srv_poweroff(void *arg)
    616619{
    617620        sys_srv_t *syssrv = (sys_srv_t *)arg;
    618621        errno_t rc;
    619622
    620         log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_shutdown");
     623        log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff");
    621624
    622625        rc = system_sys_shutdown();
    623626        if (rc != EOK) {
    624                 log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_shutdown failed");
     627                log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff failed");
    625628                system_srv_shutdown_failed(&syssrv->srv);
    626629        }
    627630
    628         log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_shutdown complete");
     631        log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_poweroff complete");
     632        system_srv_shutdown_complete(&syssrv->srv);
     633        return EOK;
     634}
     635
     636/** System restart request.
     637 *
     638 * @param arg Argument (sys_srv_t *)
     639 */
     640static errno_t system_srv_restart(void *arg)
     641{
     642        sys_srv_t *syssrv = (sys_srv_t *)arg;
     643        errno_t rc;
     644
     645        log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart");
     646
     647        rc = system_sys_shutdown();
     648        if (rc != EOK) {
     649                log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart failed");
     650                system_srv_shutdown_failed(&syssrv->srv);
     651        }
     652
     653        sys_reboot();
     654
     655        log_msg(LOG_DEFAULT, LVL_NOTE, "system_srv_restart complete");
    629656        system_srv_shutdown_complete(&syssrv->srv);
    630657        return EOK;
Note: See TracChangeset for help on using the changeset viewer.