|
|
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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.