more debug output
[linux-2.4.git] / drivers / pcmcia / pci_socket.h
1 /*
2  * drivers/pcmcia/pci_socket.h
3  *
4  * (C) Copyright 1999 Linus Torvalds
5  */
6
7 #ifndef __PCI_SOCKET_H
8 #define __PCI_SOCKET_H
9
10 struct pci_socket_ops;
11 struct socket_info_t;
12
13 typedef struct pci_socket {
14         struct pci_dev *dev;
15         int cb_irq, io_irq;
16         void *base;
17         void (*handler)(void *, unsigned int);
18         void *info;
19         struct pci_socket_ops *op;
20         socket_cap_t cap;
21         spinlock_t event_lock;
22         unsigned int events;
23         struct socket_info_t *pcmcia_socket;
24         struct tq_struct tq_task;
25         struct timer_list poll_timer;
26         /* Zoom video behaviour is so chip specific its not worth adding
27            this to _ops */
28         void (*zoom_video)(struct pci_socket *, int);
29         /* A few words of private data for the low-level driver.. */
30         unsigned int private[8];
31 } pci_socket_t;
32
33 struct pci_socket_ops {
34         int (*open)(struct pci_socket *);
35         void (*close)(struct pci_socket *);
36
37         int (*init)(struct pci_socket *);
38         int (*suspend)(struct pci_socket *);
39         int (*get_status)(struct pci_socket *, unsigned int *);
40         int (*get_socket)(struct pci_socket *, socket_state_t *);
41         int (*set_socket)(struct pci_socket *, socket_state_t *);
42         int (*get_io_map)(struct pci_socket *, struct pccard_io_map *);
43         int (*set_io_map)(struct pci_socket *, struct pccard_io_map *);
44         int (*get_mem_map)(struct pci_socket *, struct pccard_mem_map *);
45         int (*set_mem_map)(struct pci_socket *, struct pccard_mem_map *);
46         void (*proc_setup)(struct pci_socket *, struct proc_dir_entry *base);
47 };
48
49 extern struct pci_socket_ops yenta_operations;
50 extern struct pci_socket_ops ricoh_operations;
51
52 #endif