#ifndef _TIFM_H
#define _TIFM_H
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/workqueue.h>
enum { … };
enum { … };
#define TIFM_CTRL_LED …
#define TIFM_CTRL_FAST_CLK …
#define TIFM_CTRL_POWER_MASK …
#define TIFM_SOCK_STATE_OCCUPIED …
#define TIFM_SOCK_STATE_POWERED …
#define TIFM_FIFO_ENABLE …
#define TIFM_FIFO_READY …
#define TIFM_FIFO_MORE …
#define TIFM_FIFO_INT_SETALL …
#define TIFM_FIFO_INTMASK …
#define TIFM_DMA_RESET …
#define TIFM_DMA_TX …
#define TIFM_DMA_EN …
#define TIFM_DMA_TSIZE …
#define TIFM_TYPE_XD …
#define TIFM_TYPE_MS …
#define TIFM_TYPE_SD …
struct tifm_device_id { … };
struct tifm_driver;
struct tifm_dev { … };
struct tifm_driver { … };
struct tifm_adapter { … };
struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
struct device *dev);
int tifm_add_adapter(struct tifm_adapter *fm);
void tifm_remove_adapter(struct tifm_adapter *fm);
void tifm_free_adapter(struct tifm_adapter *fm);
void tifm_free_device(struct device *dev);
struct tifm_dev *tifm_alloc_device(struct tifm_adapter *fm, unsigned int id,
unsigned char type);
int tifm_register_driver(struct tifm_driver *drv);
void tifm_unregister_driver(struct tifm_driver *drv);
void tifm_eject(struct tifm_dev *sock);
int tifm_has_ms_pif(struct tifm_dev *sock);
int tifm_map_sg(struct tifm_dev *sock, struct scatterlist *sg, int nents,
int direction);
void tifm_unmap_sg(struct tifm_dev *sock, struct scatterlist *sg, int nents,
int direction);
void tifm_queue_work(struct work_struct *work);
static inline void *tifm_get_drvdata(struct tifm_dev *dev)
{ … }
static inline void tifm_set_drvdata(struct tifm_dev *dev, void *data)
{ … }
#endif