11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $ 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Kernel CAPI 2.0 Interface for Linux 51da177e4SLinus Torvalds * 61da177e4SLinus Torvalds * (c) Copyright 1997 by Carsten Paeth ([email protected]) 71da177e4SLinus Torvalds * 81da177e4SLinus Torvalds */ 91da177e4SLinus Torvalds #ifndef __KERNELCAPI_H__ 101da177e4SLinus Torvalds #define __KERNELCAPI_H__ 111da177e4SLinus Torvalds 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds #include <linux/list.h> 141da177e4SLinus Torvalds #include <linux/skbuff.h> 15d7fe0f24SAl Viro #include <linux/workqueue.h> 16ef69bb2eSJan Kiszka #include <linux/notifier.h> 17*607ca46eSDavid Howells #include <uapi/linux/kernelcapi.h> 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds struct capi20_appl { 201da177e4SLinus Torvalds u16 applid; 211da177e4SLinus Torvalds capi_register_params rparam; 221da177e4SLinus Torvalds void (*recv_message)(struct capi20_appl *ap, struct sk_buff *skb); 231da177e4SLinus Torvalds void *private; 241da177e4SLinus Torvalds 251da177e4SLinus Torvalds /* internal to kernelcapi.o */ 261da177e4SLinus Torvalds unsigned long nrecvctlpkt; 271da177e4SLinus Torvalds unsigned long nrecvdatapkt; 281da177e4SLinus Torvalds unsigned long nsentctlpkt; 291da177e4SLinus Torvalds unsigned long nsentdatapkt; 3067837f23SMatthias Kaehlcke struct mutex recv_mtx; 311da177e4SLinus Torvalds struct sk_buff_head recv_queue; 321da177e4SLinus Torvalds struct work_struct recv_work; 331da177e4SLinus Torvalds int release_in_progress; 341da177e4SLinus Torvalds }; 351da177e4SLinus Torvalds 361da177e4SLinus Torvalds u16 capi20_isinstalled(void); 371da177e4SLinus Torvalds u16 capi20_register(struct capi20_appl *ap); 381da177e4SLinus Torvalds u16 capi20_release(struct capi20_appl *ap); 391da177e4SLinus Torvalds u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb); 401da177e4SLinus Torvalds u16 capi20_get_manufacturer(u32 contr, u8 buf[CAPI_MANUFACTURER_LEN]); 411da177e4SLinus Torvalds u16 capi20_get_version(u32 contr, struct capi_version *verp); 421da177e4SLinus Torvalds u16 capi20_get_serial(u32 contr, u8 serial[CAPI_SERIAL_LEN]); 431da177e4SLinus Torvalds u16 capi20_get_profile(u32 contr, struct capi_profile *profp); 441da177e4SLinus Torvalds int capi20_manufacturer(unsigned int cmd, void __user *data); 451da177e4SLinus Torvalds 46ef69bb2eSJan Kiszka #define CAPICTR_UP 0 47ef69bb2eSJan Kiszka #define CAPICTR_DOWN 1 481da177e4SLinus Torvalds 49ef69bb2eSJan Kiszka int register_capictr_notifier(struct notifier_block *nb); 50ef69bb2eSJan Kiszka int unregister_capictr_notifier(struct notifier_block *nb); 511da177e4SLinus Torvalds 521da177e4SLinus Torvalds #define CAPI_NOERROR 0x0000 531da177e4SLinus Torvalds 541da177e4SLinus Torvalds #define CAPI_TOOMANYAPPLS 0x1001 551da177e4SLinus Torvalds #define CAPI_LOGBLKSIZETOSMALL 0x1002 561da177e4SLinus Torvalds #define CAPI_BUFFEXECEEDS64K 0x1003 571da177e4SLinus Torvalds #define CAPI_MSGBUFSIZETOOSMALL 0x1004 581da177e4SLinus Torvalds #define CAPI_ANZLOGCONNNOTSUPPORTED 0x1005 591da177e4SLinus Torvalds #define CAPI_REGRESERVED 0x1006 601da177e4SLinus Torvalds #define CAPI_REGBUSY 0x1007 611da177e4SLinus Torvalds #define CAPI_REGOSRESOURCEERR 0x1008 621da177e4SLinus Torvalds #define CAPI_REGNOTINSTALLED 0x1009 631da177e4SLinus Torvalds #define CAPI_REGCTRLERNOTSUPPORTEXTEQUIP 0x100a 641da177e4SLinus Torvalds #define CAPI_REGCTRLERONLYSUPPORTEXTEQUIP 0x100b 651da177e4SLinus Torvalds 661da177e4SLinus Torvalds #define CAPI_ILLAPPNR 0x1101 671da177e4SLinus Torvalds #define CAPI_ILLCMDORSUBCMDORMSGTOSMALL 0x1102 681da177e4SLinus Torvalds #define CAPI_SENDQUEUEFULL 0x1103 691da177e4SLinus Torvalds #define CAPI_RECEIVEQUEUEEMPTY 0x1104 701da177e4SLinus Torvalds #define CAPI_RECEIVEOVERFLOW 0x1105 711da177e4SLinus Torvalds #define CAPI_UNKNOWNNOTPAR 0x1106 721da177e4SLinus Torvalds #define CAPI_MSGBUSY 0x1107 731da177e4SLinus Torvalds #define CAPI_MSGOSRESOURCEERR 0x1108 741da177e4SLinus Torvalds #define CAPI_MSGNOTINSTALLED 0x1109 751da177e4SLinus Torvalds #define CAPI_MSGCTRLERNOTSUPPORTEXTEQUIP 0x110a 761da177e4SLinus Torvalds #define CAPI_MSGCTRLERONLYSUPPORTEXTEQUIP 0x110b 771da177e4SLinus Torvalds 781da177e4SLinus Torvalds typedef enum { 791da177e4SLinus Torvalds CapiMessageNotSupportedInCurrentState = 0x2001, 801da177e4SLinus Torvalds CapiIllContrPlciNcci = 0x2002, 811da177e4SLinus Torvalds CapiNoPlciAvailable = 0x2003, 821da177e4SLinus Torvalds CapiNoNcciAvailable = 0x2004, 831da177e4SLinus Torvalds CapiNoListenResourcesAvailable = 0x2005, 841da177e4SLinus Torvalds CapiNoFaxResourcesAvailable = 0x2006, 851da177e4SLinus Torvalds CapiIllMessageParmCoding = 0x2007, 861da177e4SLinus Torvalds } RESOURCE_CODING_PROBLEM; 871da177e4SLinus Torvalds 881da177e4SLinus Torvalds typedef enum { 891da177e4SLinus Torvalds CapiB1ProtocolNotSupported = 0x3001, 901da177e4SLinus Torvalds CapiB2ProtocolNotSupported = 0x3002, 911da177e4SLinus Torvalds CapiB3ProtocolNotSupported = 0x3003, 921da177e4SLinus Torvalds CapiB1ProtocolParameterNotSupported = 0x3004, 931da177e4SLinus Torvalds CapiB2ProtocolParameterNotSupported = 0x3005, 941da177e4SLinus Torvalds CapiB3ProtocolParameterNotSupported = 0x3006, 951da177e4SLinus Torvalds CapiBProtocolCombinationNotSupported = 0x3007, 961da177e4SLinus Torvalds CapiNcpiNotSupported = 0x3008, 971da177e4SLinus Torvalds CapiCipValueUnknown = 0x3009, 981da177e4SLinus Torvalds CapiFlagsNotSupported = 0x300a, 991da177e4SLinus Torvalds CapiFacilityNotSupported = 0x300b, 1001da177e4SLinus Torvalds CapiDataLengthNotSupportedByCurrentProtocol = 0x300c, 1011da177e4SLinus Torvalds CapiResetProcedureNotSupportedByCurrentProtocol = 0x300d, 1021da177e4SLinus Torvalds CapiTeiAssignmentFailed = 0x300e, 1031da177e4SLinus Torvalds } REQUESTED_SERVICES_PROBLEM; 1041da177e4SLinus Torvalds 1051da177e4SLinus Torvalds typedef enum { 1061da177e4SLinus Torvalds CapiSuccess = 0x0000, 1071da177e4SLinus Torvalds CapiSupplementaryServiceNotSupported = 0x300e, 1081da177e4SLinus Torvalds CapiRequestNotAllowedInThisState = 0x3010, 1091da177e4SLinus Torvalds } SUPPLEMENTARY_SERVICE_INFO; 1101da177e4SLinus Torvalds 1111da177e4SLinus Torvalds typedef enum { 1121da177e4SLinus Torvalds CapiProtocolErrorLayer1 = 0x3301, 1131da177e4SLinus Torvalds CapiProtocolErrorLayer2 = 0x3302, 1141da177e4SLinus Torvalds CapiProtocolErrorLayer3 = 0x3303, 1151da177e4SLinus Torvalds CapiTimeOut = 0x3303, // SuppServiceReason 1161da177e4SLinus Torvalds CapiCallGivenToOtherApplication = 0x3304, 1171da177e4SLinus Torvalds } CAPI_REASON; 1181da177e4SLinus Torvalds 1191da177e4SLinus Torvalds #endif /* __KERNELCAPI_H__ */ 120