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/dev/cardbus/cardslotvar.h

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 /*      $OpenBSD: cardslotvar.h,v 1.6 2013/10/30 08:47:20 mpi Exp $     */
    2 /*      $NetBSD: cardslotvar.h,v 1.5 2000/03/13 23:52:38 soren Exp $    */
    3 
    4 /*
    5  * Copyright (c) 1999
    6  *       HAYAKAWA Koichi.  All rights reserved.
    7  *
    8  * Redistribution and use in source and binary forms, with or without
    9  * modification, are permitted provided that the following conditions
   10  * are met:
   11  * 1. Redistributions of source code must retain the above copyright
   12  *    notice, this list of conditions and the following disclaimer.
   13  * 2. Redistributions in binary form must reproduce the above copyright
   14  *    notice, this list of conditions and the following disclaimer in the
   15  *    documentation and/or other materials provided with the distribution.
   16  *
   17  *
   18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   20  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   21  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
   22  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   24  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   26  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
   27  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   28  * POSSIBILITY OF SUCH DAMAGE.
   29  */
   30 
   31 #ifndef _DEV_CARDBUS_CARDSLOTVAR_H_
   32 #define _DEV_CARDBUS_CARDSLOTVAR_H_
   33 
   34 /* require sys/device.h */
   35 /* require sys/queue.h */
   36 
   37 struct cardslot_event;
   38 
   39 /*
   40  * The data structure cardslot_attach_args is the attach argument for
   41  * PCMCIA (including CardBus and 16-bit card) slot.
   42  */
   43 struct cardslot_attach_args {
   44         char *caa_busname;
   45 
   46         int caa_slot;
   47 
   48         /* for cardbus... */
   49         struct cbslot_attach_args *caa_cb_attach;
   50 
   51         /* for 16-bit pcmcia */
   52         struct pcmciabus_attach_args *caa_16_attach;
   53 
   54         /* XXX: for 16-bit pcmcia.  dirty!
   55          * This should be removed to achieve MI.
   56          */
   57         struct pcic_handle *caa_ph;
   58 };
   59 
   60 
   61 /*
   62  * The data structure cardslot_attach_args is the attach argument for
   63  * PCMCIA (including CardBus and 16-bit card) slot.
   64  */
   65 struct cardslot_softc {
   66         struct device sc_dev;
   67 
   68         int sc_slot;                    /* slot number */
   69         int sc_status;                  /* the status of slot */
   70 
   71         struct cardbus_softc *sc_cb_softc;
   72         struct pcmcia_softc *sc_16_softc;
   73 
   74         /* An event queue for the thread which processes slot state events. */
   75         SIMPLEQ_HEAD(, cardslot_event) sc_events;
   76         struct task sc_event_task;
   77 };
   78 
   79 #define CARDSLOT_STATUS_CARD_MASK     0x07
   80 #define CARDSLOT_STATUS_CARD_NONE     0x00  /* NO card inserted */
   81 #define CARDSLOT_STATUS_CARD_16       0x01  /* 16-bit pcmcia card inserted */
   82 #define CARDSLOT_STATUS_CARD_CB       0x02  /* CardBus pcmcia card inserted */
   83 #define CARDSLOT_STATUS_UNKNOWN       0x07  /* Unknown card inserted */
   84 
   85 #define CARDSLOT_CARDTYPE(x) ((x) & CARDSLOT_STATUS_CARD_MASK)
   86 #define CARDSLOT_SET_CARDTYPE(x, type) \
   87         do {(x) &= ~CARDSLOT_STATUS_CARD_MASK;\
   88             (x) |= (CARDSLOT_STATUS_CARD_MASK & (type));} while(0)
   89 
   90 #define CARDSLOT_STATUS_WORK_MASK     0x08
   91 #define CARDSLOT_STATUS_WORKING       0x08  /* at least one function works */
   92 #define CARDSLOT_STATUS_NOTWORK       0x00  /* no functions are working */
   93 
   94 #define CARDSLOT_WORK(x) ((x) & CARDSLOT_STATUS_WORK_MASK)
   95 #define CARDSLOT_SET_WORK(x, type) \
   96         do {(x) &= ~CARDSLOT_STATUS_WORK_MASK;\
   97             (x) |= (CARDSLOT_STATUS_WORK_MASK & (type));} while(0)
   98 
   99 
  100 struct cardslot_event {
  101         SIMPLEQ_ENTRY(cardslot_event) ce_q;
  102 
  103         int ce_type;
  104 };
  105 
  106 typedef struct cardslot_softc *cardslot_t;
  107 
  108 /* ce_type */
  109 #define CARDSLOT_EVENT_INSERTION_16     0
  110 #define CARDSLOT_EVENT_REMOVAL_16       1
  111 
  112 #define CARDSLOT_EVENT_INSERTION_CB     2
  113 #define CARDSLOT_EVENT_REMOVAL_CB       3
  114 
  115 #define IS_CARDSLOT_INSERT_REMOVE_EV(x) (0 <= (x) && (x) <= 3)
  116 
  117 void    cardslot_event_throw(cardslot_t, int);
  118 
  119 #endif /* !_DEV_CARDBUS_CARDSLOTVAR_H_ */

Cache object: 4c07fcad70db39b227495d7a8d46f888


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