summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-05-18 01:50:05 -0500
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-05-18 01:50:05 -0500
commitdd7728a8d8c34a9329320118813cfa485bcdc3fd (patch)
treef05aa2dc29236a5853e5778834cf90b297719ea2 /include/linux
parentfa82a1dad8713f50233150710637981776dcdf3a (diff)
parent97b75e584c71456a9e10955346c9e045b7b53650 (diff)
Merge tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5
into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.isdn
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/kernelcapi.h59
1 files changed, 30 insertions, 29 deletions
diff --git a/include/linux/kernelcapi.h b/include/linux/kernelcapi.h
index e6312ebffbc4..b982d5b77ae9 100644
--- a/include/linux/kernelcapi.h
+++ b/include/linux/kernelcapi.h
@@ -49,40 +49,41 @@ typedef struct kcapi_carddef {
#include <linux/skbuff.h>
-struct capi_interface {
- __u16 (*capi_isinstalled) (void);
-
- __u16 (*capi_register) (capi_register_params * rparam, __u16 * applidp);
- __u16 (*capi_release) (__u16 applid);
- __u16 (*capi_put_message) (__u16 applid, struct sk_buff * msg);
- __u16 (*capi_get_message) (__u16 applid, struct sk_buff ** msgp);
- __u16 (*capi_set_signal) (__u16 applid,
- void (*signal) (__u16 applid, void *param),
- void *param);
- __u16 (*capi_get_manufacturer) (__u32 contr, __u8 buf[CAPI_MANUFACTURER_LEN]);
- __u16 (*capi_get_version) (__u32 contr, struct capi_version * verp);
- __u16(*capi_get_serial) (__u32 contr, __u8 serial[CAPI_SERIAL_LEN]);
- __u16(*capi_get_profile) (__u32 contr, struct capi_profile * profp);
-
- /*
- * to init controllers, data is always in user memory
+#define KCI_CONTRUP 0 /* arg: struct capi_profile */
+#define KCI_CONTRDOWN 1 /* arg: NULL */
+
+struct capi20_appl {
+ u16 applid;
+ capi_register_params rparam;
+ void (*recv_message)(struct capi20_appl *ap, struct sk_buff *skb);
+ void *private;
+
+ /* internal to kernelcapi.o */
+ unsigned long nrecvctlpkt;
+ unsigned long nrecvdatapkt;
+ unsigned long nsentctlpkt;
+ unsigned long nsentdatapkt;
+
+ /* ugly hack to allow for notification of added/removed
+ * controllers. The Right Way (tm) is known. XXX
*/
- int (*capi_manufacturer) (unsigned int cmd, void *data);
-
+ void (*callback) (unsigned int cmd, __u32 contr, void *data);
};
-#define KCI_CONTRUP 0 /* struct capi_profile */
-#define KCI_CONTRDOWN 1 /* NULL */
+u16 capi20_isinstalled(void);
+u16 capi20_register(struct capi20_appl *ap);
+u16 capi20_release(struct capi20_appl *ap);
+u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb);
+u16 capi20_get_manufacturer(u32 contr, u8 buf[CAPI_MANUFACTURER_LEN]);
+u16 capi20_get_version(u32 contr, struct capi_version *verp);
+u16 capi20_get_serial(u32 contr, u8 serial[CAPI_SERIAL_LEN]);
+u16 capi20_get_profile(u32 contr, struct capi_profile *profp);
+int capi20_manufacturer(unsigned int cmd, void *data);
-struct capi_interface_user {
- char name[20];
- void (*callback) (unsigned int cmd, __u32 contr, void *data);
- /* internal */
- struct list_head user_list;
-};
+/* temporary hack XXX */
+void capi20_set_callback(struct capi20_appl *ap,
+ void (*callback) (unsigned int cmd, __u32 contr, void *data));
-struct capi_interface *attach_capi_interface(struct capi_interface_user *);
-int detach_capi_interface(struct capi_interface_user *);
#define CAPI_NOERROR 0x0000