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