diff --git a/Kernel/Devices/PCSpeaker.cpp b/Kernel/Arch/x86/common/PCSpeaker.cpp similarity index 92% rename from Kernel/Devices/PCSpeaker.cpp rename to Kernel/Arch/x86/common/PCSpeaker.cpp index 9fa6b6a3da..ac2fdfd364 100644 --- a/Kernel/Devices/PCSpeaker.cpp +++ b/Kernel/Arch/x86/common/PCSpeaker.cpp @@ -5,7 +5,7 @@ */ #include -#include +#include #include void PCSpeaker::tone_on(int frequency) diff --git a/Kernel/Devices/PCSpeaker.h b/Kernel/Arch/x86/common/PCSpeaker.h similarity index 100% rename from Kernel/Devices/PCSpeaker.h rename to Kernel/Arch/x86/common/PCSpeaker.h diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index d297ab6a90..f4ddca6cff 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -59,7 +59,6 @@ set(KERNEL_SOURCES Devices/MemoryDevice.cpp Devices/NullDevice.cpp Devices/PCISerialDevice.cpp - Devices/PCSpeaker.cpp Devices/RandomDevice.cpp Devices/SelfTTYDevice.cpp Devices/SerialDevice.cpp @@ -335,6 +334,7 @@ if ("${SERENITY_ARCH}" STREQUAL "i686" OR "${SERENITY_ARCH}" STREQUAL "x86_64") Arch/x86/common/DebugOutput.cpp Arch/x86/common/Delay.cpp Arch/x86/common/I8042Reboot.cpp + Arch/x86/common/PCSpeaker.cpp Arch/x86/common/RTC.cpp Arch/x86/common/ScopedCritical.cpp Arch/x86/common/SmapDisabler.cpp diff --git a/Kernel/Syscalls/beep.cpp b/Kernel/Syscalls/beep.cpp index c8a897a756..1e5b2fe192 100644 --- a/Kernel/Syscalls/beep.cpp +++ b/Kernel/Syscalls/beep.cpp @@ -5,7 +5,9 @@ */ #include -#include +#if ARCH(I386) || ARCH(X86_64) +# include +#endif #include namespace Kernel { @@ -15,12 +17,16 @@ ErrorOr Process::sys$beep() VERIFY_NO_PROCESS_BIG_LOCK(this); if (!kernel_command_line().is_pc_speaker_enabled()) return ENODEV; +#if ARCH(I386) || ARCH(X86_64) PCSpeaker::tone_on(440); auto result = Thread::current()->sleep(Time::from_nanoseconds(200'000'000)); PCSpeaker::tone_off(); if (result.was_interrupted()) return EINTR; return 0; +#else + return ENOTIMPL; +#endif } } diff --git a/Kernel/TTY/VirtualConsole.cpp b/Kernel/TTY/VirtualConsole.cpp index cc20a57584..a1ee9a77fc 100644 --- a/Kernel/TTY/VirtualConsole.cpp +++ b/Kernel/TTY/VirtualConsole.cpp @@ -8,11 +8,13 @@ #include #include +#if ARCH(I386) || ARCH(X86_64) +# include +#endif #include #include #include #include -#include #include #include #include @@ -327,9 +329,11 @@ void VirtualConsole::beep() { if (!kernel_command_line().is_pc_speaker_enabled()) return; +#if ARCH(I386) || ARCH(X86_64) PCSpeaker::tone_on(440); microseconds_delay(10000); PCSpeaker::tone_off(); +#endif } void VirtualConsole::set_window_title(StringView)