brintos

brintos / linux-shallow public Read only

0
0
Text · 3.1 KiB · 31f946f Raw
135 lines · c
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 Linux5 * 6 * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)7 * 8 * This software may be used and distributed according to the terms9 * 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#endif21 22/*23 * CAPI_REGISTER24 */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_MANUFACTURER36 */37 38#define CAPI_MANUFACTURER_LEN		6439 40#define	CAPI_GET_MANUFACTURER	_IOWR('C',0x06,int)	/* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */41 42/*43 * CAPI_GET_VERSION44 */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_SERIAL57 */58 59#define CAPI_SERIAL_LEN		860#define CAPI_GET_SERIAL		_IOWR('C',0x08,int)	/* broken: wanted size 8 (CAPI_SERIAL_LEN) */61 62/*63 * CAPI_GET_PROFILE64 */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_CMD86 */87 88#define CAPI_MANUFACTURER_CMD	_IOWR('C',0x20, struct capi_manufacturer_cmd)89 90/*91 * CAPI_GET_ERRCODE92 * capi errcode is set, * if read, write, or ioctl returns EIO,93 * ioctl returns errcode directly, and in arg, if != 094 */95 96#define CAPI_GET_ERRCODE	_IOR('C',0x21, __u16)97 98/*99 * CAPI_INSTALLED100 */101#define CAPI_INSTALLED		_IOR('C',0x22, __u16)102 103 104/*105 * member contr is input for106 * CAPI_GET_MANUFACTURER, CAPI_GET_VERSION, CAPI_GET_SERIAL107 * and CAPI_GET_PROFILE108 */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 extension122 */123 124#define CAPIFLAG_HIGHJACKING	0x0001125 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__ */135