cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

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__ */