Linux x86_64Sistema & diversos#169
reboot
Reinicia, desliga, ou altera o comportamento de Ctrl-Alt-Del do sistema.
Descrição
Chamada de baixo nível usada por `init`/systemd internamente; exige CAP_SYS_BOOT. Requer um 'número mágico' específico como proteção contra chamadas acidentais.
Header:
sys/reboot.hman 2Assinatura
int reboot(int magic, int magic2, int cmd, void * arg);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| magic | int | Deve ser LINUX_REBOOT_MAGIC1 (0xfee1dead). |
| magic2 | int | Deve ser um dos valores LINUX_REBOOT_MAGIC2*. |
| cmd | int | LINUX_REBOOT_CMD_RESTART, POWER_OFF, HALT, CAD_ON/OFF, etc. |
| arg | void * | Argumento adicional, usado por alguns comandos (ex.: mensagem de restart). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | magicint |
| rsi | argumento 2 | magic2int |
| rdx | argumento 3 | cmdint |
| r10 | argumento 4 | argvoid * |
Valor de retorno
0 em sucesso (para comandos que retornam); -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).