summaryrefslogtreecommitdiffstats
path: root/include/pcmcia
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-05 06:47:02 +0000
commit99a7e12f34b3661a0d1354eef83a0eef4df5e34c (patch)
tree3560aca9ca86792f9ab7bd87861ea143a1b3c7a3 /include/pcmcia
parente73a04659c0b8cdee4dd40e58630e2cf63afb316 (diff)
Merge with Linux 2.3.38.
Diffstat (limited to 'include/pcmcia')
-rw-r--r--include/pcmcia/bulkmem.h4
-rw-r--r--include/pcmcia/cs.h10
-rw-r--r--include/pcmcia/ss.h38
3 files changed, 28 insertions, 24 deletions
diff --git a/include/pcmcia/bulkmem.h b/include/pcmcia/bulkmem.h
index dcc84bf04..c920e3d41 100644
--- a/include/pcmcia/bulkmem.h
+++ b/include/pcmcia/bulkmem.h
@@ -195,10 +195,10 @@ extern int MTDHelperEntry(int func, ...);
int pcmcia_get_first_region(client_handle_t handle, region_info_t *rgn);
int pcmcia_get_next_region(client_handle_t handle, region_info_t *rgn);
int pcmcia_register_mtd(client_handle_t handle, mtd_reg_t *reg);
-int pcmcia_register_erase_queue(client_handle_t *handle, eraseq_hdr_t *header);
+int pcmcia_register_erase_queue(client_handle_t *handle, eraseq_hdr_t *header, eraseq_handle_t *e);
int pcmcia_deregister_erase_queue(eraseq_handle_t eraseq);
int pcmcia_check_erase_queue(eraseq_handle_t eraseq);
-int pcmcia_open_memory(client_handle_t *handle, open_mem_t *open);
+int pcmcia_open_memory(client_handle_t *handle, open_mem_t *open, memory_handle_t *m);
int pcmcia_close_memory(memory_handle_t handle);
int pcmcia_read_memory(memory_handle_t handle, mem_op_t *req, caddr_t buf);
int pcmcia_write_memory(memory_handle_t handle, mem_op_t *req, caddr_t buf);
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index 8a67a6f98..7a27cb2eb 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -402,14 +402,6 @@ typedef struct mtd_bind_t {
#ifdef __KERNEL__
/*
- * Calls to set up low-level "Socket Services" drivers
- */
-
-typedef int (*ss_entry_t)(u_int sock, u_int cmd, void *arg);
-extern int register_ss_entry(int nsock, ss_entry_t entry);
-extern void unregister_ss_entry(ss_entry_t entry);
-
-/*
* The main Card Services entry point
*/
@@ -464,7 +456,7 @@ 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);
+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_suspend_card(client_handle_t handle, client_req_t *req);
int pcmcia_resume_card(client_handle_t handle, client_req_t *req);
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 6912cd5c8..fb3819ba8 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -30,12 +30,6 @@
#ifndef _LINUX_SS_H
#define _LINUX_SS_H
-/* For RegisterCallback */
-typedef struct ss_callback_t {
- void (*handler)(void *info, u_int events);
- void *info;
-} ss_callback_t;
-
/* Definitions for card status flags for GetStatus */
#define SS_WRPROT 0x0001
#define SS_CARDLOCK 0x0002
@@ -58,8 +52,7 @@ typedef struct socket_cap_t {
u_int irq_mask;
u_int map_size;
u_char pci_irq;
- u_char cardbus;
- struct pci_bus *cb_bus;
+ struct pci_dev *cb_dev;
struct bus_operations *bus;
} socket_cap_t;
@@ -78,6 +71,8 @@ typedef struct socket_state_t {
u_char io_irq;
} socket_state_t;
+extern socket_state_t dead_socket;
+
/* Socket configuration flags */
#define SS_PWR_AUTO 0x0010
#define SS_IOCARD 0x0020
@@ -120,11 +115,28 @@ typedef struct cb_bridge_map {
u_int start, stop;
} cb_bridge_map;
-enum ss_service {
- SS_RegisterCallback, SS_InquireSocket,
- SS_GetStatus, SS_GetSocket, SS_SetSocket,
- SS_GetIOMap, SS_SetIOMap, SS_GetMemMap, SS_SetMemMap,
- SS_GetBridge, SS_SetBridge, SS_ProcSetup
+/*
+ * Socket operations.
+ */
+struct pccard_operations {
+ int (*init)(unsigned int sock);
+ int (*suspend)(unsigned int sock);
+ int (*register_callback)(unsigned int sock, void (*handler)(void *, unsigned int), void * info);
+ int (*inquire_socket)(unsigned int sock, socket_cap_t *cap);
+ int (*get_status)(unsigned int sock, u_int *value);
+ int (*get_socket)(unsigned int sock, socket_state_t *state);
+ int (*set_socket)(unsigned int sock, socket_state_t *state);
+ int (*get_io_map)(unsigned int sock, struct pccard_io_map *io);
+ int (*set_io_map)(unsigned int sock, struct pccard_io_map *io);
+ int (*get_mem_map)(unsigned int sock, struct pccard_mem_map *mem);
+ int (*set_mem_map)(unsigned int sock, struct pccard_mem_map *mem);
+ void (*proc_setup)(unsigned int sock, struct proc_dir_entry *base);
};
+/*
+ * Calls to set up low-level "Socket Services" drivers
+ */
+extern int register_ss_entry(int nsock, struct pccard_operations *ops);
+extern void unregister_ss_entry(struct pccard_operations *ops);
+
#endif /* _LINUX_SS_H */