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__ */
|