beep.cpp 495 B

1234567891011121314151617181920212223
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/Devices/PCSpeaker.h>
  7. #include <Kernel/Process.h>
  8. namespace Kernel {
  9. KResultOr<FlatPtr> Process::sys$beep()
  10. {
  11. VERIFY_NO_PROCESS_BIG_LOCK(this);
  12. PCSpeaker::tone_on(440);
  13. auto result = Thread::current()->sleep(Time::from_nanoseconds(200'000'000));
  14. PCSpeaker::tone_off();
  15. if (result.was_interrupted())
  16. return EINTR;
  17. return 0;
  18. }
  19. }