diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/util.c | 22 | ||||
-rw-r--r-- | src/shared/util.h | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/util.c b/src/shared/util.c index 7d98dc6e4f..70b159f8c3 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5639,3 +5639,25 @@ bool in_initrd(void) { return saved; } + +void warn_melody(void) { + int fd; + + fd = open("/dev/console", O_WRONLY|O_CLOEXEC|O_NOCTTY); + if (fd < 0) + return; + + /* Yeah, this is synchronous. Kinda sucks. Bute well... */ + + ioctl(fd, KIOCSOUND, (int)(1193180/440)); + usleep(125*USEC_PER_MSEC); + + ioctl(fd, KIOCSOUND, (int)(1193180/220)); + usleep(125*USEC_PER_MSEC); + + ioctl(fd, KIOCSOUND, (int)(1193180/220)); + usleep(125*USEC_PER_MSEC); + + ioctl(fd, KIOCSOUND, 0); + close_nointr_nofail(fd); +} diff --git a/src/shared/util.h b/src/shared/util.h index 2d890fa6a3..35ff2e3547 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -513,4 +513,7 @@ int can_sleep(const char *type); bool is_valid_documentation_url(const char *url); bool in_initrd(void); + +void warn_melody(void); + #endif |