TTY: "nobeep" setting to disable beeps
Disable the speaker by passing in "nobeep=1" as a boot option. The option is preserved when updating the boot configuration. Currently i386 only.
This commit is contained in:
parent
09b729b328
commit
972156d595
@ -6,7 +6,7 @@ DEFAULTCFG=/etc/boot.cfg.default
|
|||||||
LOCALCFG=/etc/boot.cfg.local
|
LOCALCFG=/etc/boot.cfg.local
|
||||||
TMP=/boot.cfg.temp
|
TMP=/boot.cfg.temp
|
||||||
DIRSBASE=/boot/minix
|
DIRSBASE=/boot/minix
|
||||||
INHERIT="ahci acpi no_apic"
|
INHERIT="ahci acpi no_apic nobeep"
|
||||||
|
|
||||||
filter_entries()
|
filter_entries()
|
||||||
{
|
{
|
||||||
|
@ -49,6 +49,7 @@ static int vid_port; /* I/O port for accessing 6845 */
|
|||||||
static int wrap; /* hardware can wrap? */
|
static int wrap; /* hardware can wrap? */
|
||||||
static int softscroll; /* 1 = software scrolling, 0 = hardware */
|
static int softscroll; /* 1 = software scrolling, 0 = hardware */
|
||||||
static int beeping; /* speaker is beeping? */
|
static int beeping; /* speaker is beeping? */
|
||||||
|
static long disable_beep = -1; /* do not use speaker if set to 1 */
|
||||||
static unsigned font_lines; /* font lines per character */
|
static unsigned font_lines; /* font lines per character */
|
||||||
static unsigned scr_width; /* # characters on a line */
|
static unsigned scr_width; /* # characters on a line */
|
||||||
static unsigned scr_lines; /* # lines on the screen */
|
static unsigned scr_lines; /* # lines on the screen */
|
||||||
@ -761,6 +762,24 @@ unsigned *val; /* 16-bit value to set it to */
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* beep_disabled *
|
||||||
|
*===========================================================================*/
|
||||||
|
static long beep_disabled(void)
|
||||||
|
{
|
||||||
|
/* Return whether the user requested that beeps not be performed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Perform first-time initialization if necessary. */
|
||||||
|
if (disable_beep < 0) {
|
||||||
|
disable_beep = 0; /* the default is on */
|
||||||
|
|
||||||
|
(void) env_parse("nobeep", "d", 0, &disable_beep, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return disable_beep;
|
||||||
|
}
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* beep *
|
* beep *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
@ -774,6 +793,8 @@ static void beep()
|
|||||||
pvb_pair_t char_out[3];
|
pvb_pair_t char_out[3];
|
||||||
u32_t port_b_val;
|
u32_t port_b_val;
|
||||||
|
|
||||||
|
if (beep_disabled()) return;
|
||||||
|
|
||||||
/* Set timer in advance to prevent beeping delay. */
|
/* Set timer in advance to prevent beeping delay. */
|
||||||
set_timer(&tmr_stop_beep, B_TIME, stop_beep, 0);
|
set_timer(&tmr_stop_beep, B_TIME, stop_beep, 0);
|
||||||
|
|
||||||
@ -881,6 +902,8 @@ clock_t dur;
|
|||||||
pvb_pair_t char_out[3];
|
pvb_pair_t char_out[3];
|
||||||
u32_t port_b_val;
|
u32_t port_b_val;
|
||||||
|
|
||||||
|
if (beep_disabled()) return;
|
||||||
|
|
||||||
unsigned long ival= TIMER_FREQ / freq;
|
unsigned long ival= TIMER_FREQ / freq;
|
||||||
if (ival == 0 || ival > 0xffff)
|
if (ival == 0 || ival > 0xffff)
|
||||||
return; /* Frequency out of range */
|
return; /* Frequency out of range */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user