mirror of
https://github.com/systemd/systemd
synced 2026-04-13 10:35:08 +02:00
Compare commits
2 Commits
6eed65d455
...
a68b244399
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a68b244399 | ||
|
|
cc25bedb29 |
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
|||||||
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
|
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
|
||||||
|
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@5f532563584d71fdef14ee64d17bafb34f751ce5
|
uses: github/codeql-action/init@cd783c8a29bdcf5a5c79c5137889e24651fa626c
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
config-file: ./.github/codeql-config.yml
|
config-file: ./.github/codeql-config.yml
|
||||||
@ -49,7 +49,7 @@ jobs:
|
|||||||
- run: sudo -E .github/workflows/unit_tests.sh SETUP
|
- run: sudo -E .github/workflows/unit_tests.sh SETUP
|
||||||
|
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@5f532563584d71fdef14ee64d17bafb34f751ce5
|
uses: github/codeql-action/autobuild@cd783c8a29bdcf5a5c79c5137889e24651fa626c
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@5f532563584d71fdef14ee64d17bafb34f751ce5
|
uses: github/codeql-action/analyze@cd783c8a29bdcf5a5c79c5137889e24651fa626c
|
||||||
|
|||||||
@ -199,8 +199,8 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>beep</term>
|
<term>beep</term>
|
||||||
|
|
||||||
<listitem><para>Beep once as soon as the boot menu is shown (default disabled). Currently,
|
<listitem><para>Beep n times when the n-th entry in the boot menu is shown (default disabled).
|
||||||
only x86 is supported, where it uses the PC speaker.</para></listitem>
|
Currently, only x86 is supported, where it uses the PC speaker.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
|||||||
@ -590,7 +590,7 @@ static BOOLEAN menu_run(
|
|||||||
_cleanup_freepool_ CHAR16 *clearline = NULL, *status = NULL;
|
_cleanup_freepool_ CHAR16 *clearline = NULL, *status = NULL;
|
||||||
UINT32 timeout_efivar_saved = config->timeout_sec_efivar;
|
UINT32 timeout_efivar_saved = config->timeout_sec_efivar;
|
||||||
UINT32 timeout_remain = config->timeout_sec == TIMEOUT_MENU_FORCE ? 0 : config->timeout_sec;
|
UINT32 timeout_remain = config->timeout_sec == TIMEOUT_MENU_FORCE ? 0 : config->timeout_sec;
|
||||||
BOOLEAN exit = FALSE, run = TRUE, firmware_setup = FALSE, do_beep = config->beep;
|
BOOLEAN exit = FALSE, run = TRUE, firmware_setup = FALSE;
|
||||||
INT64 console_mode_initial = ST->ConOut->Mode->Mode, console_mode_efivar_saved = config->console_mode_efivar;
|
INT64 console_mode_initial = ST->ConOut->Mode->Mode, console_mode_efivar_saved = config->console_mode_efivar;
|
||||||
UINTN default_efivar_saved = config->idx_default_efivar;
|
UINTN default_efivar_saved = config->idx_default_efivar;
|
||||||
|
|
||||||
@ -727,10 +727,9 @@ static BOOLEAN menu_run(
|
|||||||
ST->ConOut->OutputString(ST->ConOut, clearline + 1 + x + len);
|
ST->ConOut->OutputString(ST->ConOut, clearline + 1 + x + len);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (do_beep) {
|
/* Beep several times so that the selected entry can be distinguished. */
|
||||||
beep();
|
if (config->beep)
|
||||||
do_beep = FALSE;
|
beep(idx_highlight + 1);
|
||||||
}
|
|
||||||
|
|
||||||
err = console_key_read(&key, timeout_remain > 0 ? 1000 * 1000 : UINT64_MAX);
|
err = console_key_read(&key, timeout_remain > 0 ? 1000 * 1000 : UINT64_MAX);
|
||||||
if (err == EFI_TIMEOUT) {
|
if (err == EFI_TIMEOUT) {
|
||||||
|
|||||||
@ -769,10 +769,11 @@ static inline void outb(UINT16 port, UINT8 value) {
|
|||||||
asm volatile("outb %0, %1" : : "a"(value), "Nd"(port));
|
asm volatile("outb %0, %1" : : "a"(value), "Nd"(port));
|
||||||
}
|
}
|
||||||
|
|
||||||
void beep(void) {
|
void beep(UINTN beep_count) {
|
||||||
enum {
|
enum {
|
||||||
PITCH = 500,
|
PITCH = 500,
|
||||||
DURATION_USEC = 100 * 1000,
|
BEEP_DURATION_USEC = 100 * 1000,
|
||||||
|
WAIT_DURATION_USEC = 400 * 1000,
|
||||||
|
|
||||||
PIT_FREQUENCY = 0x1234dd,
|
PIT_FREQUENCY = 0x1234dd,
|
||||||
SPEAKER_CONTROL_PORT = 0x61,
|
SPEAKER_CONTROL_PORT = 0x61,
|
||||||
@ -788,15 +789,22 @@ void beep(void) {
|
|||||||
outb(TIMER_CONTROL2_PORT, counter & 0xFF);
|
outb(TIMER_CONTROL2_PORT, counter & 0xFF);
|
||||||
outb(TIMER_CONTROL2_PORT, (counter >> 8) & 0xFF);
|
outb(TIMER_CONTROL2_PORT, (counter >> 8) & 0xFF);
|
||||||
|
|
||||||
/* Turn speaker on. */
|
|
||||||
UINT8 value = inb(SPEAKER_CONTROL_PORT);
|
UINT8 value = inb(SPEAKER_CONTROL_PORT);
|
||||||
|
|
||||||
|
while (beep_count > 0) {
|
||||||
|
/* Turn speaker on. */
|
||||||
value |= SPEAKER_ON_MASK;
|
value |= SPEAKER_ON_MASK;
|
||||||
outb(SPEAKER_CONTROL_PORT, value);
|
outb(SPEAKER_CONTROL_PORT, value);
|
||||||
|
|
||||||
BS->Stall(DURATION_USEC);
|
BS->Stall(BEEP_DURATION_USEC);
|
||||||
|
|
||||||
/* Turn speaker off. */
|
/* Turn speaker off. */
|
||||||
value &= ~SPEAKER_ON_MASK;
|
value &= ~SPEAKER_ON_MASK;
|
||||||
outb(SPEAKER_CONTROL_PORT, value);
|
outb(SPEAKER_CONTROL_PORT, value);
|
||||||
|
|
||||||
|
beep_count--;
|
||||||
|
if (beep_count > 0)
|
||||||
|
BS->Stall(WAIT_DURATION_USEC);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -171,7 +171,7 @@ extern UINT8 _text, _data;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
void beep(void);
|
void beep(UINTN beep_count);
|
||||||
#else
|
#else
|
||||||
static inline void beep(void) {}
|
static inline void beep(UINTN beep_count) {}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user