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 struct callout_handle beeptimeout_ch
   23     = CALLOUT_HANDLE_INITIALIZER(&beeptimeout_ch);
   24 
   25 static enum beepstate allow_beep = BEEP_OFF;
   26 
   27 /*
   28  * timeout function to keep lots of noise from
   29  * happening with insertion/removals.
   30  */
   31 static void enable_beep(void *dummy)
   32 {
   33         /* Should never be needed */
   34         untimeout(enable_beep, (void *)NULL, beeptimeout_ch);
   35 
   36         allow_beep = 1;
   37 }
   38 
   39 void pccard_insert_beep(void)
   40 {
   41         if (allow_beep == BEEP_ON) {
   42                 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
   43                 allow_beep = 0;
   44                 beeptimeout_ch = timeout(enable_beep, (void *)NULL, hz / 5);
   45         }
   46 }
   47 
   48 void pccard_remove_beep(void)
   49 {
   50         if (allow_beep == BEEP_ON) {
   51                 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
   52                 allow_beep = 0;
   53                 beeptimeout_ch = timeout(enable_beep, (void *)NULL, hz / 5);
   54         }
   55 }
   56 
   57 void pccard_success_beep(void)
   58 {
   59         sysbeep(PCCARD_BEEP_PITCH1, PCCARD_BEEP_DURATION1);
   60 }
   61 
   62 void pccard_failure_beep(void)
   63 {
   64         sysbeep(PCCARD_BEEP_PITCH2, PCCARD_BEEP_DURATION2);
   65 }
   66 
   67 int pccard_beep_select(enum beepstate state)
   68 {
   69         if (state == BEEP_ON || state == BEEP_OFF) {
   70                 allow_beep = state;
   71                 return 0;
   72         }
   73         return 1;
   74 }

Cache object: 1ff47fe050704d6026404e14b095f83d


[ 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.