fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / pcmcia / cs.h
index 871d8f1..d5838c3 100644 (file)
@@ -1,30 +1,15 @@
 /*
- * cs.h 1.71 2000/08/29 00:54:20
+ * cs.h
  *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License. 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  *
  * The initial developer of the original code is David A. Hinds
  * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
  *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in which
- * case the provisions of the GPL are applicable instead of the
- * above.  If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL.  If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
+ * (C) 1999             David A. Hinds
  */
 
 #ifndef _LINUX_CS_H
@@ -83,21 +68,9 @@ typedef struct adjust_t {
 #define RES_ALLOCATED                  0x20
 #define RES_REMOVED                    0x40
 
-typedef struct servinfo_t {
-    char       Signature[2];
-    u_int      Count;
-    u_int      Revision;
-    u_int      CSLevel;
-    char       *VendorString;
-} servinfo_t;
-
 typedef struct event_callback_args_t {
-    client_handle_t client_handle;
-    void       *info;
-    void       *mtdrequest;
-    void       *buffer;
-    void       *misc;
-    void       *client_data;
+       struct pcmcia_device    *client_handle;
+       void                    *client_data;
 } event_callback_args_t;
 
 /* for GetConfigurationInfo */
@@ -136,17 +109,6 @@ typedef struct client_req_t {
 
 #define CLIENT_THIS_SOCKET     0x01
 
-/* For RegisterClient */
-typedef struct client_reg_t {
-    dev_info_t *dev_info;
-    u_int      Attributes;
-    u_int      EventMask;
-    int                (*event_handler)(event_t event, int priority,
-                                event_callback_args_t *);
-    event_callback_args_t event_callback_args;
-    u_int      Version;
-} client_reg_t;
-
 /* ModifyConfiguration */
 typedef struct modconf_t {
     u_int      Attributes;
@@ -154,15 +116,16 @@ typedef struct modconf_t {
 } modconf_t;
 
 /* Attributes for ModifyConfiguration */
-#define CONF_IRQ_CHANGE_VALID  0x100
-#define CONF_VCC_CHANGE_VALID  0x200
-#define CONF_VPP1_CHANGE_VALID 0x400
-#define CONF_VPP2_CHANGE_VALID 0x800
+#define CONF_IRQ_CHANGE_VALID  0x0100
+#define CONF_VCC_CHANGE_VALID  0x0200
+#define CONF_VPP1_CHANGE_VALID 0x0400
+#define CONF_VPP2_CHANGE_VALID 0x0800
+#define CONF_IO_CHANGE_WIDTH   0x1000
 
 /* For RequestConfiguration */
 typedef struct config_req_t {
     u_int      Attributes;
-    u_int      Vcc, Vpp1, Vpp2;
+    u_int      Vpp; /* both Vpp1 and Vpp2 */
     u_int      IntType;
     u_int      ConfigBase;
     u_char     Status, Pin, Copy, ExtStatus;
@@ -206,7 +169,7 @@ typedef struct io_req_t {
 typedef struct irq_req_t {
     u_int      Attributes;
     u_int      AssignedIRQ;
-    u_int      IRQInfo1, IRQInfo2;
+    u_int      IRQInfo1, IRQInfo2; /* IRQInfo2 is ignored */
     void       *Handler;
     void       *Instance;
 } irq_req_t;
@@ -294,7 +257,7 @@ typedef struct win_req_t {
 #define WIN_BAR_MASK           0xe000
 #define WIN_BAR_SHIFT          13
 
-/* Attributes for RegisterClient */
+/* Attributes for RegisterClient -- UNUSED -- */
 #define INFO_MASTER_CLIENT     0x01
 #define INFO_IO_CLIENT         0x02
 #define INFO_MTD_CLIENT                0x04
@@ -315,23 +278,9 @@ typedef struct error_info_t {
     int                retcode;
 } error_info_t;
 
-/* Special stuff for binding drivers to sockets */
-typedef struct bind_req_t {
-    struct pcmcia_socket       *Socket;
-    u_char     Function;
-    dev_info_t *dev_info;
-} bind_req_t;
-
 /* Flag to bind to all functions */
 #define BIND_FN_ALL    0xff
 
-typedef struct mtd_bind_t {
-    struct pcmcia_socket       *Socket;
-    u_int      Attributes;
-    u_int      CardOffset;
-    dev_info_t *dev_info;
-} mtd_bind_t;
-
 /* Events */
 #define CS_EVENT_PRI_LOW               0
 #define CS_EVENT_PRI_HIGH              1
@@ -348,7 +297,6 @@ typedef struct mtd_bind_t {
 #define CS_EVENT_RESET_PHYSICAL                0x000200
 #define CS_EVENT_CARD_RESET            0x000400
 #define CS_EVENT_REGISTRATION_COMPLETE 0x000800
-#define CS_EVENT_RESET_COMPLETE                0x001000
 #define CS_EVENT_PM_SUSPEND            0x002000
 #define CS_EVENT_PM_RESUME             0x004000
 #define CS_EVENT_INSERTION_REQUEST     0x008000
@@ -421,40 +369,36 @@ enum service {
     GetFirstWindow, GetNextWindow, GetMemPage
 };
 
-int pcmcia_access_configuration_register(client_handle_t handle, conf_reg_t *reg);
-int pcmcia_deregister_client(client_handle_t handle);
-int pcmcia_get_configuration_info(client_handle_t handle, config_info_t *config);
-int pcmcia_get_card_services_info(servinfo_t *info);
-int pcmcia_get_first_client(client_handle_t *handle, client_req_t *req);
-int pcmcia_get_next_client(client_handle_t *handle, client_req_t *req);
-int pcmcia_get_window(window_handle_t *handle, int idx, win_req_t *req);
+struct pcmcia_socket;
+
+int pcmcia_access_configuration_register(struct pcmcia_device *p_dev, conf_reg_t *reg);
+int pcmcia_get_configuration_info(struct pcmcia_device *p_dev, config_info_t *config);
 int pcmcia_get_first_window(window_handle_t *win, win_req_t *req);
 int pcmcia_get_next_window(window_handle_t *win, win_req_t *req);
-int pcmcia_get_status(client_handle_t handle, cs_status_t *status);
+int pcmcia_get_status(struct pcmcia_device *p_dev, cs_status_t *status);
 int pcmcia_get_mem_page(window_handle_t win, memreq_t *req);
 int pcmcia_map_mem_page(window_handle_t win, memreq_t *req);
-int pcmcia_modify_configuration(client_handle_t handle, modconf_t *mod);
-int pcmcia_modify_window(window_handle_t win, modwin_t *req);
-int pcmcia_register_client(client_handle_t *handle, client_reg_t *req);
-int pcmcia_release_configuration(client_handle_t handle);
-int pcmcia_release_io(client_handle_t handle, io_req_t *req);
-int pcmcia_release_irq(client_handle_t handle, irq_req_t *req);
+int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod);
 int pcmcia_release_window(window_handle_t win);
-int pcmcia_request_configuration(client_handle_t handle, config_req_t *req);
-int pcmcia_request_io(client_handle_t handle, io_req_t *req);
-int pcmcia_request_irq(client_handle_t handle, irq_req_t *req);
-int pcmcia_request_window(client_handle_t *handle, win_req_t *req, window_handle_t *wh);
-int pcmcia_reset_card(client_handle_t handle, client_req_t *req);
+int pcmcia_request_configuration(struct pcmcia_device *p_dev, config_req_t *req);
+int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req);
+int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req);
+int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_handle_t *wh);
 int pcmcia_suspend_card(struct pcmcia_socket *skt);
 int pcmcia_resume_card(struct pcmcia_socket *skt);
 int pcmcia_eject_card(struct pcmcia_socket *skt);
 int pcmcia_insert_card(struct pcmcia_socket *skt);
-int pcmcia_set_event_mask(client_handle_t handle, eventmask_t *mask);
-int pcmcia_report_error(client_handle_t handle, error_info_t *err);
-struct pci_bus *pcmcia_lookup_bus(client_handle_t handle);
+int pccard_reset_card(struct pcmcia_socket *skt);
+
+struct pcmcia_device * pcmcia_dev_present(struct pcmcia_device *p_dev);
+void pcmcia_disable_device(struct pcmcia_device *p_dev);
+
+struct pcmcia_socket * pcmcia_get_socket(struct pcmcia_socket *skt);
+void pcmcia_put_socket(struct pcmcia_socket *skt);
 
-/* rsrc_mgr.c */
-int pcmcia_adjust_resource_info(client_handle_t handle, adjust_t *adj);
+/* compatibility functions */
+#define pcmcia_reset_card(p_dev, req) \
+               pccard_reset_card(p_dev->socket)
 
 #endif /* __KERNEL__ */