Blame view

kernel/linux-imx6_3.14.28/include/linux/kernelcapi.h 4.41 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
117
118
119
  /*
   * $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)
   * 
   */
  #ifndef __KERNELCAPI_H__
  #define __KERNELCAPI_H__
  
  
  #include <linux/list.h>
  #include <linux/skbuff.h>
  #include <linux/workqueue.h>
  #include <linux/notifier.h>
  #include <uapi/linux/kernelcapi.h>
  
  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;
  	struct mutex recv_mtx;
  	struct sk_buff_head recv_queue;
  	struct work_struct recv_work;
  	int release_in_progress;
  };
  
  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 __user *data);
  
  #define CAPICTR_UP			0
  #define CAPICTR_DOWN			1
  
  int register_capictr_notifier(struct notifier_block *nb);
  int unregister_capictr_notifier(struct notifier_block *nb);
  
  #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;
  
  #endif				/* __KERNELCAPI_H__ */