1 /* $Id: capilli.h,v 1.1.2.2 2004/01/16 21:09:2 1 /* $Id: capilli.h,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $ 2 * 2 * 3 * Kernel CAPI 2.0 Driver Interface for Linux 3 * Kernel CAPI 2.0 Driver Interface for Linux 4 * 4 * 5 * Copyright 1999 by Carsten Paeth <calle@call 5 * Copyright 1999 by Carsten Paeth <calle@calle.de> 6 * 6 * 7 * This software may be used and distributed a 7 * This software may be used and distributed according to the terms 8 * of the GNU General Public License, incorpor 8 * of the GNU General Public License, incorporated herein by reference. 9 * 9 * 10 */ 10 */ 11 11 12 #ifndef __CAPILLI_H__ 12 #ifndef __CAPILLI_H__ 13 #define __CAPILLI_H__ 13 #define __CAPILLI_H__ 14 14 15 #include <linux/kernel.h> 15 #include <linux/kernel.h> 16 #include <linux/list.h> 16 #include <linux/list.h> 17 #include <linux/capi.h> 17 #include <linux/capi.h> 18 #include <linux/kernelcapi.h> 18 #include <linux/kernelcapi.h> 19 19 20 typedef struct capiloaddatapart { 20 typedef struct capiloaddatapart { 21 int user; /* data in use 21 int user; /* data in userspace ? */ 22 int len; 22 int len; 23 unsigned char *data; 23 unsigned char *data; 24 } capiloaddatapart; 24 } capiloaddatapart; 25 25 26 typedef struct capiloaddata { 26 typedef struct capiloaddata { 27 capiloaddatapart firmware; 27 capiloaddatapart firmware; 28 capiloaddatapart configuration; 28 capiloaddatapart configuration; 29 } capiloaddata; 29 } capiloaddata; 30 30 31 typedef struct capicardparams { 31 typedef struct capicardparams { 32 unsigned int port; 32 unsigned int port; 33 unsigned irq; 33 unsigned irq; 34 int cardtype; 34 int cardtype; 35 int cardnr; 35 int cardnr; 36 unsigned int membase; 36 unsigned int membase; 37 } capicardparams; 37 } capicardparams; 38 38 39 struct capi_ctr { 39 struct capi_ctr { 40 /* filled in before calling attach_cap 40 /* filled in before calling attach_capi_ctr */ 41 struct module *owner; 41 struct module *owner; 42 void *driverdata; 42 void *driverdata; /* driver specific */ 43 char name[32]; 43 char name[32]; /* name of controller */ 44 char *driver_name; 44 char *driver_name; /* name of driver */ 45 int (*load_firmware)(struct capi_ctr * 45 int (*load_firmware)(struct capi_ctr *, capiloaddata *); 46 void (*reset_ctr)(struct capi_ctr *); 46 void (*reset_ctr)(struct capi_ctr *); 47 void (*register_appl)(struct capi_ctr 47 void (*register_appl)(struct capi_ctr *, u16 appl, 48 capi_register_pa 48 capi_register_params *); 49 void (*release_appl)(struct capi_ctr * 49 void (*release_appl)(struct capi_ctr *, u16 appl); 50 u16 (*send_message)(struct capi_ctr * 50 u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb); 51 51 52 char *(*procinfo)(struct capi_ctr *); 52 char *(*procinfo)(struct capi_ctr *); 53 int (*proc_show)(struct seq_file *, vo 53 int (*proc_show)(struct seq_file *, void *); 54 54 55 /* filled in before calling ready call 55 /* filled in before calling ready callback */ 56 u8 manu[CAPI_MANUFACTURER_LEN]; 56 u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */ 57 capi_version version; 57 capi_version version; /* CAPI_GET_VERSION */ 58 capi_profile profile; 58 capi_profile profile; /* CAPI_GET_PROFILE */ 59 u8 serial[CAPI_SERIAL_LEN]; 59 u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */ 60 60 61 /* management information for kcapi */ 61 /* management information for kcapi */ 62 62 63 unsigned long nrecvctlpkt; 63 unsigned long nrecvctlpkt; 64 unsigned long nrecvdatapkt; 64 unsigned long nrecvdatapkt; 65 unsigned long nsentctlpkt; 65 unsigned long nsentctlpkt; 66 unsigned long nsentdatapkt; 66 unsigned long nsentdatapkt; 67 67 68 int cnr; 68 int cnr; /* controller number */ 69 unsigned short state; 69 unsigned short state; /* controller state */ 70 int blocked; 70 int blocked; /* output blocked */ 71 int traceflag; 71 int traceflag; /* capi trace */ 72 72 73 struct proc_dir_entry *procent; 73 struct proc_dir_entry *procent; 74 char procfn[128]; 74 char procfn[128]; 75 }; 75 }; 76 76 77 int attach_capi_ctr(struct capi_ctr *); 77 int attach_capi_ctr(struct capi_ctr *); 78 int detach_capi_ctr(struct capi_ctr *); 78 int detach_capi_ctr(struct capi_ctr *); 79 79 80 void capi_ctr_ready(struct capi_ctr * card); 80 void capi_ctr_ready(struct capi_ctr * card); 81 void capi_ctr_down(struct capi_ctr * card); 81 void capi_ctr_down(struct capi_ctr * card); 82 void capi_ctr_handle_message(struct capi_ctr * 82 void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb); 83 83 84 // ------------------------------------------- 84 // --------------------------------------------------------------------------- 85 // needed for AVM capi drivers 85 // needed for AVM capi drivers 86 86 87 struct capi_driver { 87 struct capi_driver { 88 char name[32]; 88 char name[32]; /* driver name */ 89 char revision[32]; 89 char revision[32]; 90 90 91 /* management information for kcapi */ 91 /* management information for kcapi */ 92 struct list_head list; 92 struct list_head list; 93 }; 93 }; 94 94 95 #endif /* __CAPILLI_H 95 #endif /* __CAPILLI_H__ */ 96 96
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.