The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/pccard/pccard_beep.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * pccard noise interface.
    3  * Nate Williams, October 1997.
    4  * This file is in the public domain.
    5  */
    6 
    7 #include <sys/param.h>
    8 #include <sys/kernel.h>
    9 #include <sys/systm.h>
   10 
   11 #include <machine/clock.h>
   12 
   13 #include <pccard/driver.h>
   14 
   15 #define PCCARD_BEEP_PITCH0      1600
   16 #define PCCARD_BEEP_DURATION0   20
   17 #define PCCARD_BEEP_PITCH1      1200
   18 #define PCCARD_BEEP_DURATION1   40
   19 #define PCCARD_BEEP_PITCH2      3200
   20 #define PCCARD_BEEP_DURATION2   40
   21 
   22 static enum beepstate allow_beep = BEEP_OFF;
   23 
   24 /*
   25  * timeout function to keep lots of noise from
   26  * happening with insertion/removals.
   27  */
   28 static void enable_beep(void *dummy)
   29 {
   30         /* Should never be needed */
   31         untimeout(enable_beep, (void *)NULL);
   32 
   33         allow_beep = 1;
   34 }
   35 
   36 void pccard_insert_beep(void)
   37 {
   38         if (allow_beep == BEEP_ON) {
   39                 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
   40                 allow_beep = 0;
   41                 timeout(enable_beep, (void *)NULL, hz / 5);
   42         }
   43 }
   44 
   45 void pccard_remove_beep(void)
   46 {
   47         if (allow_beep == BEEP_ON) {
   48                 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
   49                 allow_beep = 0;
   50                 timeout(enable_beep, (void *)NULL, hz / 5);
   51         }
   52 }
   53 
   54 void pccard_success_beep(void)
   55 {
   56         sysbeep(PCCARD_BEEP_PITCH1, PCCARD_BEEP_DURATION1);
   57 }
   58 
   59 void pccard_failure_beep(void)
   60 {
   61         sysbeep(PCCARD_BEEP_PITCH2, PCCARD_BEEP_DURATION2);
   62 }
   63 
   64 void pccard_beep_select(enum beepstate state)
   65 {
   66         allow_beep = state;
   67 }

Cache object: 3fba2b6e5f7821f3f1bebeb70a9fa389


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.