111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_CAPI_H__
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_CAPI_H__
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ioctl.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/kernelcapi.h>
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct capi_register_params {
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 level3cnt;
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 datablkcnt;
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 datablklen;
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} capi_register_params;
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_REGISTER _IOW('C',0x01,struct capi_register_params)
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_MANUFACTURER_LEN 64
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_MANUFACTURER _IOWR('C',0x06,int)
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct capi_version {
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 majorversion;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 minorversion;
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 majormanuversion;
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 minormanuversion;
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} capi_version;
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_VERSION _IOWR('C',0x07,struct capi_version)
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_SERIAL_LEN 8
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_SERIAL _IOWR('C',0x08,int)
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct capi_profile {
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ncontroller;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 nbchannel;
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 goptions;
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 support1;
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 support2;
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 support3;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reserved[6];
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 manu[5];
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} capi_profile;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_PROFILE _IOWR('C',0x09,struct capi_profile)
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct capi_manufacturer_cmd {
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long cmd;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *data;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} capi_manufacturer_cmd;
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_MANUFACTURER_CMD _IOWR('C',0x20, struct capi_manufacturer_cmd)
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_ERRCODE _IOR('C',0x21, __u16)
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_INSTALLED _IOR('C',0x22, __u16)
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef union capi_ioctl_struct {
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 contr;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert capi_register_params rparams;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 manufacturer[CAPI_MANUFACTURER_LEN];
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert capi_version version;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 serial[CAPI_SERIAL_LEN];
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert capi_profile profile;
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert capi_manufacturer_cmd cmd;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 errcode;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} capi_ioctl_struct;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPIFLAG_HIGHJACKING 0x0001
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_GET_FLAGS _IOR('C',0x23, unsigned)
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_SET_FLAGS _IOR('C',0x24, unsigned)
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_CLR_FLAGS _IOR('C',0x25, unsigned)
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_NCCI_OPENCOUNT _IOR('C',0x26, unsigned)
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAPI_NCCI_GETUNIT _IOR('C',0x27, unsigned)
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
89