summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkuriyama <kuriyama@FreeBSD.org>1999-02-13 11:32:00 +0000
committerkuriyama <kuriyama@FreeBSD.org>1999-02-13 11:32:00 +0000
commit3cc41826ab6506e9c9133d85220a0f94cf4d6d61 (patch)
treeffbf059cf57bd485d0aac2620206d1c31f6649fa
parent1cddd2160576125f9b7544f0af72ccb52afa4513 (diff)
downloadFreeBSD-src-3cc41826ab6506e9c9133d85220a0f94cf4d6d61.zip
FreeBSD-src-3cc41826ab6506e9c9133d85220a0f94cf4d6d61.tar.gz
Add "beep" ioctl. (#10 is reserved for PIOCSVIR)
Obtained from: PAO3 Reviewed by: -current list
-rw-r--r--sys/pccard/cardinfo.h1
-rw-r--r--sys/pccard/driver.h2
-rw-r--r--sys/pccard/pccard.c7
-rw-r--r--sys/pccard/pccard_beep.c8
4 files changed, 14 insertions, 4 deletions
diff --git a/sys/pccard/cardinfo.h b/sys/pccard/cardinfo.h
index ba98283..045665a 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 bbb255e..09acc50 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 05aa241..5783bac 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 63c6098..5c1ceb7 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;
}
OpenPOWER on IntegriCloud