diff options
| author | klaar36 <klas.arvidsson@liu.se> | 2019-04-02 18:26:51 +0200 |
|---|---|---|
| committer | klaar36 <klas.arvidsson@liu.se> | 2019-04-02 18:26:51 +0200 |
| commit | c3ce00fe7d5a88560864167d769a559c578115f4 (patch) | |
| tree | da54f6fe65c3fcb439fe361173a673713446c39d /src/threads | |
| parent | 06f60bd120bbf7e57b46401d3708d83bd37053e7 (diff) | |
| parent | 6ca20446c77fd6dec9ca10713a63233c97e7e977 (diff) | |
| download | pintos-rs-c3ce00fe7d5a88560864167d769a559c578115f4.tar.gz | |
Merge remote-tracking branch 'skel/master'
Diffstat (limited to 'src/threads')
| -rw-r--r-- | src/threads/init.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/threads/init.c b/src/threads/init.c index 16be95d..ee05db1 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -410,10 +410,16 @@ hard_power_off (void) ACPI shutdown should use: outw(PM1a_CNT, SLP_TYPa | SLP_EN ); Gathering of the corect values for the parameters is not easy. - This works for QEMU and Bochs. It's not portable. + This works for QEMU and Bochs. It's not portable (and does not work in the latest QEMU). */ outw(0xB004, 0x2000); + /* Even more recent versions of QEMU needs other measures for shutdown. + * See: https://wiki.osdev.org/Shutdown + * Exit code is the value to outb * 2 + 1, so we can not exit cleanly... + */ + outb(0xF4, 0x30); + /* This is APM Shutdown */ for (p = s; *p != '\0'; p++) outb (0x8900, *p); |
