Shutdown manually

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-04-27 21:42:15 +02:00
parent dc10619461
commit 708745c8a7
4 changed files with 134 additions and 4 deletions

View file

@ -18,6 +18,7 @@
#define SYSCALL_WRITE 4
#define SYSCALL_RESET 88
#define SYSCALL_IOPL 110
#define SYSCALL_EXIT 1
#define SYSCALL_INT 0x80
@ -26,6 +27,8 @@
#define SHUTDOWN_MAGIC2 0x28121969
#define SHUTDOWN_MAGIC3 0x4321fedc
#define SHUTDOWN_PORT 0x8900
.text
.global start, _start
_start:
@ -37,6 +40,28 @@ start:
movl $(messageend-message), %edx
int $SYSCALL_INT
movl $SYSCALL_IOPL, %eax
movl $3, %ebx
int $SYSCALL_INT
movw $SHUTDOWN_PORT, %dx
movb $'S', %al
outb %al, %dx
movb $'h', %al
outb %al, %dx
movb $'u', %al
outb %al, %dx
movb $'t', %al
outb %al, %dx
movb $'d', %al
outb %al, %dx
movb $'o', %al
outb %al, %dx
movb $'w', %al
outb %al, %dx
movb $'n', %al
outb %al, %dx
/* shutdown. */
movl $SYSCALL_RESET, %eax
movl $SHUTDOWN_MAGIC1, %ebx