1/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ 2 * 3 * CAPI 2.0 Interface for Linux 4 * 5 * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) 6 * 7 * This software may be used and distributed according to the terms 8 * of the GNU General Public License, incorporated herein by reference. 9 * 10 */ 11 12#ifndef __LINUX_CAPI_H__ 13#define __LINUX_CAPI_H__ 14 15#include <linux/types.h> 16#include <linux/ioctl.h> 17#include <linux/kernelcapi.h> 18 19/* 20 * CAPI_REGISTER 21 */ 22 23typedef struct capi_register_params { /* CAPI_REGISTER */ 24 __u32 level3cnt; /* No. of simulatneous user data connections */ 25 __u32 datablkcnt; /* No. of buffered data messages */ 26 __u32 datablklen; /* Size of buffered data messages */ 27} capi_register_params; 28 29#define CAPI_REGISTER _IOW('C',0x01,struct capi_register_params) 30 31/* 32 * CAPI_GET_MANUFACTURER 33 */ 34 35#define CAPI_MANUFACTURER_LEN 64 36 37#define CAPI_GET_MANUFACTURER _IOWR('C',0x06,int) /* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */ 38 39/* 40 * CAPI_GET_VERSION 41 */ 42 43typedef struct capi_version { 44 __u32 majorversion; 45 __u32 minorversion; 46 __u32 majormanuversion; 47 __u32 minormanuversion; 48} capi_version; 49 50#define CAPI_GET_VERSION _IOWR('C',0x07,struct capi_version) 51 52/* 53 * CAPI_GET_SERIAL 54 */ 55 56#define CAPI_SERIAL_LEN 8 57#define CAPI_GET_SERIAL _IOWR('C',0x08,int) /* broken: wanted size 8 (CAPI_SERIAL_LEN) */ 58 59/* 60 * CAPI_GET_PROFILE 61 */ 62 63typedef struct capi_profile { 64 __u16 ncontroller; /* number of installed controller */ 65 __u16 nbchannel; /* number of B-Channels */ 66 __u32 goptions; /* global options */ 67 __u32 support1; /* B1 protocols support */ 68 __u32 support2; /* B2 protocols support */ 69 __u32 support3; /* B3 protocols support */ 70 __u32 reserved[6]; /* reserved */ 71 __u32 manu[5]; /* manufacturer specific information */ 72} capi_profile; 73 74#define CAPI_GET_PROFILE _IOWR('C',0x09,struct capi_profile) 75 76typedef struct capi_manufacturer_cmd { 77 unsigned long cmd; 78 void *data; 79} capi_manufacturer_cmd; 80 81/* 82 * CAPI_MANUFACTURER_CMD 83 */ 84 85#define CAPI_MANUFACTURER_CMD _IOWR('C',0x20, struct capi_manufacturer_cmd) 86 87/* 88 * CAPI_GET_ERRCODE 89 * capi errcode is set, * if read, write, or ioctl returns EIO, 90 * ioctl returns errcode directly, and in arg, if != 0 91 */ 92 93#define CAPI_GET_ERRCODE _IOR('C',0x21, __u16) 94 95/* 96 * CAPI_INSTALLED 97 */ 98#define CAPI_INSTALLED _IOR('C',0x22, __u16) 99 100 101/* 102 * member contr is input for 103 * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL 104 * and CAPI_GET_PROFILE 105 */ 106typedef union capi_ioctl_struct { 107 __u32 contr; 108 capi_register_params rparams; 109 __u8 manufacturer[CAPI_MANUFACTURER_LEN]; 110 capi_version version; 111 __u8 serial[CAPI_SERIAL_LEN]; 112 capi_profile profile; 113 capi_manufacturer_cmd cmd; 114 __u16 errcode; 115} capi_ioctl_struct; 116 117/* 118 * Middleware extension 119 */ 120 121#define CAPIFLAG_HIGHJACKING 0x0001 122 123#define CAPI_GET_FLAGS _IOR('C',0x23, unsigned) 124#define CAPI_SET_FLAGS _IOR('C',0x24, unsigned) 125#define CAPI_CLR_FLAGS _IOR('C',0x25, unsigned) 126 127#define CAPI_NCCI_OPENCOUNT _IOR('C',0x26, unsigned) 128 129#define CAPI_NCCI_GETUNIT _IOR('C',0x27, unsigned) 130 131#endif /* __LINUX_CAPI_H__ */ 132