Blame view

include/linux/kernelcapi.h 4.41 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
  /*
   * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $
   * 
   * Kernel CAPI 2.0 Interface for Linux
   * 
   * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
   * 
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
9
10
  #ifndef __KERNELCAPI_H__
  #define __KERNELCAPI_H__
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
11
12
13
  
  #include <linux/list.h>
  #include <linux/skbuff.h>
d7fe0f241   Al Viro   [PATCH] severing ...
14
  #include <linux/workqueue.h>
ef69bb2ec   Jan Kiszka   CAPI: Rework cont...
15
  #include <linux/notifier.h>
607ca46e9   David Howells   UAPI: (Scripted) ...
16
  #include <uapi/linux/kernelcapi.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
18
19
20
21
22
23
24
25
26
27
28
  
  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;
67837f232   Matthias Kaehlcke   Use mutex instead...
29
  	struct mutex recv_mtx;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
30
31
32
  	struct sk_buff_head recv_queue;
  	struct work_struct recv_work;
  	int release_in_progress;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
34
35
36
37
38
39
40
41
42
  };
  
  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);
9ea8aa8d5   Tilman Schmidt   isdn/capi: correc...
43
  int capi20_manufacturer(unsigned long cmd, void __user *data);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
44

ef69bb2ec   Jan Kiszka   CAPI: Rework cont...
45
46
  #define CAPICTR_UP			0
  #define CAPICTR_DOWN			1
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
47

ef69bb2ec   Jan Kiszka   CAPI: Rework cont...
48
49
  int register_capictr_notifier(struct notifier_block *nb);
  int unregister_capictr_notifier(struct notifier_block *nb);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
  
  #define CAPI_NOERROR                      0x0000
  
  #define CAPI_TOOMANYAPPLS		  0x1001
  #define CAPI_LOGBLKSIZETOSMALL	          0x1002
  #define CAPI_BUFFEXECEEDS64K 	          0x1003
  #define CAPI_MSGBUFSIZETOOSMALL	          0x1004
  #define CAPI_ANZLOGCONNNOTSUPPORTED	  0x1005
  #define CAPI_REGRESERVED		  0x1006
  #define CAPI_REGBUSY 		          0x1007
  #define CAPI_REGOSRESOURCEERR	          0x1008
  #define CAPI_REGNOTINSTALLED 	          0x1009
  #define CAPI_REGCTRLERNOTSUPPORTEXTEQUIP  0x100a
  #define CAPI_REGCTRLERONLYSUPPORTEXTEQUIP 0x100b
  
  #define CAPI_ILLAPPNR		          0x1101
  #define CAPI_ILLCMDORSUBCMDORMSGTOSMALL   0x1102
  #define CAPI_SENDQUEUEFULL		  0x1103
  #define CAPI_RECEIVEQUEUEEMPTY	          0x1104
  #define CAPI_RECEIVEOVERFLOW 	          0x1105
  #define CAPI_UNKNOWNNOTPAR		  0x1106
  #define CAPI_MSGBUSY 		          0x1107
  #define CAPI_MSGOSRESOURCEERR	          0x1108
  #define CAPI_MSGNOTINSTALLED 	          0x1109
  #define CAPI_MSGCTRLERNOTSUPPORTEXTEQUIP  0x110a
  #define CAPI_MSGCTRLERONLYSUPPORTEXTEQUIP 0x110b
  
  typedef enum {
          CapiMessageNotSupportedInCurrentState = 0x2001,
          CapiIllContrPlciNcci                  = 0x2002,
          CapiNoPlciAvailable                   = 0x2003,
          CapiNoNcciAvailable                   = 0x2004,
          CapiNoListenResourcesAvailable        = 0x2005,
          CapiNoFaxResourcesAvailable           = 0x2006,
          CapiIllMessageParmCoding              = 0x2007,
  } RESOURCE_CODING_PROBLEM;
  
  typedef enum {
          CapiB1ProtocolNotSupported                      = 0x3001,
          CapiB2ProtocolNotSupported                      = 0x3002,
          CapiB3ProtocolNotSupported                      = 0x3003,
          CapiB1ProtocolParameterNotSupported             = 0x3004,
          CapiB2ProtocolParameterNotSupported             = 0x3005,
          CapiB3ProtocolParameterNotSupported             = 0x3006,
          CapiBProtocolCombinationNotSupported            = 0x3007,
          CapiNcpiNotSupported                            = 0x3008,
          CapiCipValueUnknown                             = 0x3009,
          CapiFlagsNotSupported                           = 0x300a,
          CapiFacilityNotSupported                        = 0x300b,
          CapiDataLengthNotSupportedByCurrentProtocol     = 0x300c,
          CapiResetProcedureNotSupportedByCurrentProtocol = 0x300d,
          CapiTeiAssignmentFailed                         = 0x300e,
  } REQUESTED_SERVICES_PROBLEM;
  
  typedef enum {
  	CapiSuccess                                     = 0x0000,
  	CapiSupplementaryServiceNotSupported            = 0x300e,
  	CapiRequestNotAllowedInThisState                = 0x3010,
  } SUPPLEMENTARY_SERVICE_INFO;
  
  typedef enum {
  	CapiProtocolErrorLayer1                         = 0x3301,
  	CapiProtocolErrorLayer2                         = 0x3302,
  	CapiProtocolErrorLayer3                         = 0x3303,
  	CapiTimeOut                                     = 0x3303, // SuppServiceReason
  	CapiCallGivenToOtherApplication                 = 0x3304,
  } CAPI_REASON;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
117
  #endif				/* __KERNELCAPI_H__ */