diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-05 06:47:02 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-05 06:47:02 +0000 |
commit | 99a7e12f34b3661a0d1354eef83a0eef4df5e34c (patch) | |
tree | 3560aca9ca86792f9ab7bd87861ea143a1b3c7a3 /include/pcmcia | |
parent | e73a04659c0b8cdee4dd40e58630e2cf63afb316 (diff) |
Merge with Linux 2.3.38.
Diffstat (limited to 'include/pcmcia')
-rw-r--r-- | include/pcmcia/bulkmem.h | 4 | ||||
-rw-r--r-- | include/pcmcia/cs.h | 10 | ||||
-rw-r--r-- | include/pcmcia/ss.h | 38 |
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 */ |