diff --git a/sys/pccard/cardinfo.h b/sys/pccard/cardinfo.h index ba982837415..045665a8da1 100644 --- a/sys/pccard/cardinfo.h +++ b/sys/pccard/cardinfo.h @@ -45,6 +45,7 @@ #define PIOCRWFLAG _IOW('P', 7, int) /* Set flags for drv use */ #define PIOCRWMEM _IOWR('P', 8, unsigned long) /* Set mem for drv use */ #define PIOCSPOW _IOW('P', 9, struct power) /* Set power structure */ +#define PIOCSBEEP _IOW('P', 11, int) /* Select Beep */ /* * Debug codes. */ diff --git a/sys/pccard/driver.h b/sys/pccard/driver.h index bbb255eeac1..09acc50a072 100644 --- a/sys/pccard/driver.h +++ b/sys/pccard/driver.h @@ -23,6 +23,6 @@ void pccard_insert_beep __P((void)); void pccard_remove_beep __P((void)); void pccard_success_beep __P((void)); void pccard_failure_beep __P((void)); -void pccard_beep_select __P((enum beepstate)); +int pccard_beep_select __P((enum beepstate)); #endif /* !_PCCARD_DRIVER_H_ */ diff --git a/sys/pccard/pccard.c b/sys/pccard/pccard.c index 05aa241fda1..5783bacb4c7 100644 --- a/sys/pccard/pccard.c +++ b/sys/pccard/pccard.c @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pccard.c,v 1.69 1999/01/27 10:10:03 bde Exp $ + * $Id: pccard.c,v 1.70 1999/01/27 23:45:40 dillon Exp $ */ #include "opt_devfs.h" @@ -1026,6 +1026,11 @@ crdioctl(dev_t dev, u_long cmd, caddr_t data, int fflag, struct proc *p) else pccard_failure_beep(); return err; + case PIOCSBEEP: + if (pccard_beep_select(*(int *)data)) { + return EINVAL; + } + break; } return(0); } diff --git a/sys/pccard/pccard_beep.c b/sys/pccard/pccard_beep.c index 63c6098e05e..5c1ceb77a2a 100644 --- a/sys/pccard/pccard_beep.c +++ b/sys/pccard/pccard_beep.c @@ -64,7 +64,11 @@ void pccard_failure_beep(void) sysbeep(PCCARD_BEEP_PITCH2, PCCARD_BEEP_DURATION2); } -void pccard_beep_select(enum beepstate state) +int pccard_beep_select(enum beepstate state) { - allow_beep = state; + if (state == BEEP_ON || state == BEEP_OFF) { + allow_beep = state; + return 0; + } + return 1; }