Annotation of Gnu-Mach/linux/pcmcia-cs/include/pcmcia/ds.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * ds.h 1.58 2001/10/04 03:15:22
                      3:  *
                      4:  * The contents of this file are subject to the Mozilla Public License
                      5:  * Version 1.1 (the "License"); you may not use this file except in
                      6:  * compliance with the License. You may obtain a copy of the License
                      7:  * at http://www.mozilla.org/MPL/
                      8:  *
                      9:  * Software distributed under the License is distributed on an "AS IS"
                     10:  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
                     11:  * the License for the specific language governing rights and
                     12:  * limitations under the License. 
                     13:  *
                     14:  * The initial developer of the original code is David A. Hinds
                     15:  * <[email protected]>.  Portions created by David A. Hinds
                     16:  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
                     17:  *
                     18:  * Alternatively, the contents of this file may be used under the
                     19:  * terms of the GNU General Public License version 2 (the "GPL"), in
                     20:  * which case the provisions of the GPL are applicable instead of the
                     21:  * above.  If you wish to allow the use of your version of this file
                     22:  * only under the terms of the GPL and not to allow others to use
                     23:  * your version of this file under the MPL, indicate your decision by
                     24:  * deleting the provisions above and replace them with the notice and
                     25:  * other provisions required by the GPL.  If you do not delete the
                     26:  * provisions above, a recipient may use your version of this file
                     27:  * under either the MPL or the GPL.
                     28:  */
                     29: 
                     30: #ifndef _LINUX_DS_H
                     31: #define _LINUX_DS_H
                     32: 
                     33: #include <pcmcia/driver_ops.h>
                     34: #include <pcmcia/bulkmem.h>
                     35: 
                     36: typedef struct tuple_parse_t {
                     37:     tuple_t            tuple;
                     38:     cisdata_t          data[255];
                     39:     cisparse_t         parse;
                     40: } tuple_parse_t;
                     41: 
                     42: typedef struct win_info_t {
                     43:     window_handle_t    handle;
                     44:     win_req_t          window;
                     45:     memreq_t           map;
                     46: } win_info_t;
                     47:     
                     48: typedef struct bind_info_t {
                     49:     dev_info_t         dev_info;
                     50:     u_char             function;
                     51:     struct dev_link_t  *instance;
                     52:     char               name[DEV_NAME_LEN];
                     53:     u_short            major, minor;
                     54:     void               *next;
                     55: } bind_info_t;
                     56: 
                     57: typedef struct mtd_info_t {
                     58:     dev_info_t         dev_info;
                     59:     u_int              Attributes;
                     60:     u_int              CardOffset;
                     61: } mtd_info_t;
                     62: 
                     63: typedef union ds_ioctl_arg_t {
                     64:     servinfo_t         servinfo;
                     65:     adjust_t           adjust;
                     66:     config_info_t      config;
                     67:     tuple_t            tuple;
                     68:     tuple_parse_t      tuple_parse;
                     69:     client_req_t       client_req;
                     70:     cs_status_t                status;
                     71:     conf_reg_t         conf_reg;
                     72:     cisinfo_t          cisinfo;
                     73:     region_info_t      region;
                     74:     bind_info_t                bind_info;
                     75:     mtd_info_t         mtd_info;
                     76:     win_info_t         win_info;
                     77:     cisdump_t          cisdump;
                     78: } ds_ioctl_arg_t;
                     79: 
                     80: #define DS_GET_CARD_SERVICES_INFO      _IOR ('d', 1, servinfo_t)
                     81: #define DS_ADJUST_RESOURCE_INFO                _IOWR('d', 2, adjust_t)
                     82: #define DS_GET_CONFIGURATION_INFO      _IOWR('d', 3, config_info_t)
                     83: #define DS_GET_FIRST_TUPLE             _IOWR('d', 4, tuple_t)
                     84: #define DS_GET_NEXT_TUPLE              _IOWR('d', 5, tuple_t)
                     85: #define DS_GET_TUPLE_DATA              _IOWR('d', 6, tuple_parse_t)
                     86: #define DS_PARSE_TUPLE                 _IOWR('d', 7, tuple_parse_t)
                     87: #define DS_RESET_CARD                  _IO  ('d', 8)
                     88: #define DS_GET_STATUS                  _IOWR('d', 9, cs_status_t)
                     89: #define DS_ACCESS_CONFIGURATION_REGISTER _IOWR('d', 10, conf_reg_t)
                     90: #define DS_VALIDATE_CIS                        _IOR ('d', 11, cisinfo_t)
                     91: #define DS_SUSPEND_CARD                        _IO  ('d', 12)
                     92: #define DS_RESUME_CARD                 _IO  ('d', 13)
                     93: #define DS_EJECT_CARD                  _IO  ('d', 14)
                     94: #define DS_INSERT_CARD                 _IO  ('d', 15)
                     95: #define DS_GET_FIRST_REGION            _IOWR('d', 16, region_info_t)
                     96: #define DS_GET_NEXT_REGION             _IOWR('d', 17, region_info_t)
                     97: #define DS_REPLACE_CIS                 _IOWR('d', 18, cisdump_t)
                     98: #define DS_GET_FIRST_WINDOW            _IOR ('d', 19, win_info_t)
                     99: #define DS_GET_NEXT_WINDOW             _IOWR('d', 20, win_info_t)
                    100: #define DS_GET_MEM_PAGE                        _IOWR('d', 21, win_info_t)
                    101: 
                    102: #define DS_BIND_REQUEST                        _IOWR('d', 60, bind_info_t)
                    103: #define DS_GET_DEVICE_INFO             _IOWR('d', 61, bind_info_t) 
                    104: #define DS_GET_NEXT_DEVICE             _IOWR('d', 62, bind_info_t) 
                    105: #define DS_UNBIND_REQUEST              _IOW ('d', 63, bind_info_t)
                    106: #define DS_BIND_MTD                    _IOWR('d', 64, mtd_info_t)
                    107: 
                    108: #ifdef __KERNEL__
                    109: 
                    110: typedef struct dev_link_t {
                    111:     dev_node_t         *dev;
                    112:     u_int              state, open;
                    113:     wait_queue_head_t  pending;
                    114:     struct timer_list  release;
                    115:     client_handle_t    handle;
                    116:     io_req_t           io;
                    117:     irq_req_t          irq;
                    118:     config_req_t       conf;
                    119:     window_handle_t    win;
                    120:     void               *priv;
                    121:     struct dev_link_t  *next;
                    122: } dev_link_t;
                    123: 
                    124: /* Flags for device state */
                    125: #define DEV_PRESENT            0x01
                    126: #define DEV_CONFIG             0x02
                    127: #define DEV_STALE_CONFIG       0x04    /* release on close */
                    128: #define DEV_STALE_LINK         0x08    /* detach on release */
                    129: #define DEV_CONFIG_PENDING     0x10
                    130: #define DEV_RELEASE_PENDING    0x20
                    131: #define DEV_SUSPEND            0x40
                    132: #define DEV_BUSY               0x80
                    133: 
                    134: #define DEV_OK(l) \
                    135:     ((l) && ((l->state & ~DEV_BUSY) == (DEV_CONFIG|DEV_PRESENT)))
                    136: 
                    137: int register_pccard_driver(dev_info_t *dev_info,
                    138:                           dev_link_t *(*attach)(void),
                    139:                           void (*detach)(dev_link_t *));
                    140: 
                    141: int unregister_pccard_driver(dev_info_t *dev_info);
                    142: 
                    143: #define register_pcmcia_driver register_pccard_driver
                    144: #define unregister_pcmcia_driver unregister_pccard_driver
                    145: 
                    146: #endif /* __KERNEL__ */
                    147: 
                    148: #endif /* _LINUX_DS_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.