capi.h revision 11cd02dfb91661c65134cac258cf5924270e9d2
165772ca7d7b61b111e75fb0f66f43966f0794bbdMark Salyzyn/****************************************************************************
2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ****************************************************************************
3c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn ***
4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ***   This header was automatically generated from a Linux kernel header
5c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn ***   of the same name, to make information necessary for userspace to
6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ***   call into the kernel available to libc.  It contains only constants,
7c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn ***   structures, and macros generated from the original header, and thus,
8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ***   contains no copyrightable information.
9b149e245c8ccd90b52227f3d07ab572080afac53Mark Salyzyn ***
10c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn ****************************************************************************
11c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn ****************************************************************************/
12b149e245c8ccd90b52227f3d07ab572080afac53Mark Salyzyn#ifndef __LINUX_CAPI_H__
13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define __LINUX_CAPI_H__
14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
1565772ca7d7b61b111e75fb0f66f43966f0794bbdMark Salyzyn#include <asm/types.h>
168c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn#include <linux/ioctl.h>
178c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn#include <linux/kernelcapi.h>
18558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn
19558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyntypedef struct capi_register_params {
20558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn __u32 level3cnt;
21558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn __u32 datablkcnt;
22558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn __u32 datablklen;
23558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn} capi_register_params;
24558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn
25558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn#define CAPI_REGISTER _IOW('C',0x01,struct capi_register_params)
26558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn
27558282bfe4650f7b249f5ba0a24d3a400d67b78bMark Salyzyn#define CAPI_MANUFACTURER_LEN 64
28c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn
29e9ade17418c2e8390d72ee694ab5c097ec765266Mark Salyzyn#define CAPI_GET_MANUFACTURER _IOWR('C',0x06,int)
30c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn
31c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyntypedef struct capi_version {
32eb40816fb8e6a53456b4b3b57414d94d37a09f93Mark Salyzyn __u32 majorversion;
33c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn __u32 minorversion;
34c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn __u32 majormanuversion;
35c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn __u32 minormanuversion;
36c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn} capi_version;
37c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn
38c0cf90d1fb6aca1e6ae6c06d4d6231dd4d47d3cbMark Salyzyn#define CAPI_GET_VERSION _IOWR('C',0x07,struct capi_version)
398c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn
405b89b49fc9793243b0ff928132a0052ac0b2d9c3Mark Salyzyn#define CAPI_SERIAL_LEN 8
418c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn#define CAPI_GET_SERIAL _IOWR('C',0x08,int)
426de62e52c7b01dd416049225d122237d3e07da10Mark Salyzyn
438c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyntypedef struct capi_profile {
448c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn __u16 ncontroller;
458c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn __u16 nbchannel;
468c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn __u32 goptions;
478c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn __u32 support1;
488c943b6dc8268c25efddedce99b8d42306a323bdMark Salyzyn __u32 support2;
4965772ca7d7b61b111e75fb0f66f43966f0794bbdMark Salyzyn __u32 support3;
50 __u32 reserved[6];
51 __u32 manu[5];
52} capi_profile;
53
54#define CAPI_GET_PROFILE _IOWR('C',0x09,struct capi_profile)
55
56typedef struct capi_manufacturer_cmd {
57 unsigned long cmd;
58 void __user *data;
59} capi_manufacturer_cmd;
60
61#define CAPI_MANUFACTURER_CMD _IOWR('C',0x20, struct capi_manufacturer_cmd)
62
63#define CAPI_GET_ERRCODE _IOR('C',0x21, __u16)
64
65#define CAPI_INSTALLED _IOR('C',0x22, __u16)
66
67typedef union capi_ioctl_struct {
68 __u32 contr;
69 capi_register_params rparams;
70 __u8 manufacturer[CAPI_MANUFACTURER_LEN];
71 capi_version version;
72 __u8 serial[CAPI_SERIAL_LEN];
73 capi_profile profile;
74 capi_manufacturer_cmd cmd;
75 __u16 errcode;
76} capi_ioctl_struct;
77
78#define CAPIFLAG_HIGHJACKING 0x0001
79
80#define CAPI_GET_FLAGS _IOR('C',0x23, unsigned)
81#define CAPI_SET_FLAGS _IOR('C',0x24, unsigned)
82#define CAPI_CLR_FLAGS _IOR('C',0x25, unsigned)
83
84#define CAPI_NCCI_OPENCOUNT _IOR('C',0x26, unsigned)
85
86#define CAPI_NCCI_GETUNIT _IOR('C',0x27, unsigned)
87
88#endif
89