kernel - add kern.sysbeep_enable feature
authorMatthew Dillon <dillon@laptop1.(none)>
Sun, 14 Nov 2010 15:03:41 +0000 (07:03 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 18 Nov 2010 17:44:41 +0000 (09:44 -0800)
* Add a sysctl kern.sysbeep_enable (default on).  Setting this to 0
  will disable the system beep / bell.

* Useful when messing with a laptop in a conference, those beeps can
  get really annoying.

sys/kern/tty_cons.c
sys/platform/pc32/isa/clock.c
sys/platform/pc64/isa/clock.c
sys/sys/cons.h

index 409fc2e..8b07890 100644 (file)
@@ -101,6 +101,7 @@ int cons_unavail = 0;       /* XXX:
                                 * physical console not available for
                                 * input (i.e., it is in graphics mode)
                                 */
+int    sysbeep_enable = 1;
 
 static u_char cn_is_open;              /* nonzero if logical console is open */
 static int openmode, openflag;         /* how /dev/console was openned */
@@ -113,6 +114,8 @@ static char *console_pausestr=
 struct consdev *cn_tab;                /* physical console device info */
 struct consdev *gdb_tab;       /* physical gdb debugger device info */
 
+SYSCTL_INT(_kern, OID_AUTO, sysbeep_enable, CTLFLAG_RW, &sysbeep_enable, 0, "");
+
 CONS_DRIVER(cons, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 SET_DECLARE(cons_set, struct consdev);
 
index c5acda6..624f864 100644 (file)
@@ -489,6 +489,8 @@ sysbeep(int pitch, int period)
 {
        if (acquire_timer2(TIMER_SQWAVE|TIMER_16BIT))
                return(-1);
+       if (sysbeep_enable == 0)
+               return(-1);
        /*
         * Nobody else is using timer2, we do not need the clock lock
         */
index ae7bbca..a3a1e18 100644 (file)
@@ -492,6 +492,8 @@ sysbeep(int pitch, int period)
 {
        if (acquire_timer2(TIMER_SQWAVE|TIMER_16BIT))
                return(-1);
+       if (sysbeep_enable == 0)
+               return(-1);
        /*
         * Nobody else is using timer2, we do not need the clock lock
         */
index 6424247..77feabd 100644 (file)
@@ -92,6 +92,7 @@ struct consdev {
 
 #ifdef _KERNEL
 extern int cons_unavail;
+extern int sysbeep_enable;             /* enable audio system beep */
 extern struct consdev *cn_tab; /* console device */
 extern  struct consdev *gdb_tab;/* gdb debugger device */