linux/include/linux/kernelcapi.h
<<
>>
Prefs
   1/*
   2 * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $
   3 * 
   4 * Kernel CAPI 2.0 Interface for Linux
   5 * 
   6 * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
   7 * 
   8 */
   9#ifndef __KERNELCAPI_H__
  10#define __KERNELCAPI_H__
  11
  12
  13#include <linux/list.h>
  14#include <linux/skbuff.h>
  15#include <linux/workqueue.h>
  16#include <linux/notifier.h>
  17#include <uapi/linux/kernelcapi.h>
  18
  19struct capi20_appl {
  20        u16 applid;
  21        capi_register_params rparam;
  22        void (*recv_message)(struct capi20_appl *ap, struct sk_buff *skb);
  23        void *private;
  24
  25        /* internal to kernelcapi.o */
  26        unsigned long nrecvctlpkt;
  27        unsigned long nrecvdatapkt;
  28        unsigned long nsentctlpkt;
  29        unsigned long nsentdatapkt;
  30        struct mutex recv_mtx;
  31        struct sk_buff_head recv_queue;
  32        struct work_struct recv_work;
  33        int release_in_progress;
  34};
  35
  36u16 capi20_isinstalled(void);
  37u16 capi20_register(struct capi20_appl *ap);
  38u16 capi20_release(struct capi20_appl *ap);
  39u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb);
  40u16 capi20_get_manufacturer(u32 contr, u8 buf[CAPI_MANUFACTURER_LEN]);
  41u16 capi20_get_version(u32 contr, struct capi_version *verp);
  42u16 capi20_get_serial(u32 contr, u8 serial[CAPI_SERIAL_LEN]);
  43u16 capi20_get_profile(u32 contr, struct capi_profile *profp);
  44int capi20_manufacturer(unsigned int cmd, void __user *data);
  45
  46#define CAPICTR_UP                      0
  47#define CAPICTR_DOWN                    1
  48
  49int register_capictr_notifier(struct notifier_block *nb);
  50int unregister_capictr_notifier(struct notifier_block *nb);
  51
  52#define CAPI_NOERROR                      0x0000
  53
  54#define CAPI_TOOMANYAPPLS                 0x1001
  55#define CAPI_LOGBLKSIZETOSMALL            0x1002
  56#define CAPI_BUFFEXECEEDS64K              0x1003
  57#define CAPI_MSGBUFSIZETOOSMALL           0x1004
  58#define CAPI_ANZLOGCONNNOTSUPPORTED       0x1005
  59#define CAPI_REGRESERVED                  0x1006
  60#define CAPI_REGBUSY                      0x1007
  61#define CAPI_REGOSRESOURCEERR             0x1008
  62#define CAPI_REGNOTINSTALLED              0x1009
  63#define CAPI_REGCTRLERNOTSUPPORTEXTEQUIP  0x100a
  64#define CAPI_REGCTRLERONLYSUPPORTEXTEQUIP 0x100b
  65
  66#define CAPI_ILLAPPNR                     0x1101
  67#define CAPI_ILLCMDORSUBCMDORMSGTOSMALL   0x1102
  68#define CAPI_SENDQUEUEFULL                0x1103
  69#define CAPI_RECEIVEQUEUEEMPTY            0x1104
  70#define CAPI_RECEIVEOVERFLOW              0x1105
  71#define CAPI_UNKNOWNNOTPAR                0x1106
  72#define CAPI_MSGBUSY                      0x1107
  73#define CAPI_MSGOSRESOURCEERR             0x1108
  74#define CAPI_MSGNOTINSTALLED              0x1109
  75#define CAPI_MSGCTRLERNOTSUPPORTEXTEQUIP  0x110a
  76#define CAPI_MSGCTRLERONLYSUPPORTEXTEQUIP 0x110b
  77
  78typedef enum {
  79        CapiMessageNotSupportedInCurrentState = 0x2001,
  80        CapiIllContrPlciNcci                  = 0x2002,
  81        CapiNoPlciAvailable                   = 0x2003,
  82        CapiNoNcciAvailable                   = 0x2004,
  83        CapiNoListenResourcesAvailable        = 0x2005,
  84        CapiNoFaxResourcesAvailable           = 0x2006,
  85        CapiIllMessageParmCoding              = 0x2007,
  86} RESOURCE_CODING_PROBLEM;
  87
  88typedef enum {
  89        CapiB1ProtocolNotSupported                      = 0x3001,
  90        CapiB2ProtocolNotSupported                      = 0x3002,
  91        CapiB3ProtocolNotSupported                      = 0x3003,
  92        CapiB1ProtocolParameterNotSupported             = 0x3004,
  93        CapiB2ProtocolParameterNotSupported             = 0x3005,
  94        CapiB3ProtocolParameterNotSupported             = 0x3006,
  95        CapiBProtocolCombinationNotSupported            = 0x3007,
  96        CapiNcpiNotSupported                            = 0x3008,
  97        CapiCipValueUnknown                             = 0x3009,
  98        CapiFlagsNotSupported                           = 0x300a,
  99        CapiFacilityNotSupported                        = 0x300b,
 100        CapiDataLengthNotSupportedByCurrentProtocol     = 0x300c,
 101        CapiResetProcedureNotSupportedByCurrentProtocol = 0x300d,
 102        CapiTeiAssignmentFailed                         = 0x300e,
 103} REQUESTED_SERVICES_PROBLEM;
 104
 105typedef enum {
 106        CapiSuccess                                     = 0x0000,
 107        CapiSupplementaryServiceNotSupported            = 0x300e,
 108        CapiRequestNotAllowedInThisState                = 0x3010,
 109} SUPPLEMENTARY_SERVICE_INFO;
 110
 111typedef enum {
 112        CapiProtocolErrorLayer1                         = 0x3301,
 113        CapiProtocolErrorLayer2                         = 0x3302,
 114        CapiProtocolErrorLayer3                         = 0x3303,
 115        CapiTimeOut                                     = 0x3303, // SuppServiceReason
 116        CapiCallGivenToOtherApplication                 = 0x3304,
 117} CAPI_REASON;
 118
 119#endif                          /* __KERNELCAPI_H__ */
 120