@startuml
'comment

autonumber

participant "system/core/reboot/reboot.c" as reboot_c
participant "init/reboot.cpp" as init_reboot
participant "init/reboot_utils.cpp" as init_reboot_utils
participant "bionic/libc/bionic/reboot.cpp" as bionic_reboot
entity "kernel/reboot.c" as kernel

reboot_c -> init_reboot : property_set()\nargs="sys.powerctl","shutdown,tired"
note left: reboot -p tired
init_reboot -> init_reboot_utils: HandlePowerctlMessage()\nargs="shutdown,tired"
init_reboot_utils -> bionic_reboot: RebootSystem()
init_reboot_utils -> bionic_reboot: reboot(RB_POWER_OFF)
bionic_reboot -> kernel: reboot()\nmode=LINUX_REBOOT_CMD_POWER_OFF
bionic_reboot -> kernel: __reboot()\n  args=(LINUX_REBOOT_MAGIC1,\n  LINUX_REBOOT_MAGIC2,\n  mode,  nullptr)
note right: kernel_power_off()
@enduml