1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_LINUX_JOYSTICK_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_LINUX_JOYSTICK_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/input.h> 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_VERSION 0x020100 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_EVENT_BUTTON 0x01 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_EVENT_AXIS 0x02 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_EVENT_INIT 0x80 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct js_event { 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 time; 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s16 value; 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 type; 31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 number; 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGVERSION _IOR('j', 0x01, __u32) 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGAXES _IOR('j', 0x11, __u8) 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGBUTTONS _IOR('j', 0x12, __u8) 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGNAME(len) _IOC(_IOC_READ, 'j', 0x13, len) 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCSCORR _IOW('j', 0x21, struct js_corr) 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGCORR _IOR('j', 0x22, struct js_corr) 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCSAXMAP _IOW('j', 0x31, __u8[ABS_CNT]) 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGAXMAP _IOR('j', 0x32, __u8[ABS_CNT]) 41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCSBTNMAP _IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1]) 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JSIOCGBTNMAP _IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1]) 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_CORR_NONE 0x00 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_CORR_BROKEN 0x01 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct js_corr { 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 coef[8]; 47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s16 prec; 48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 type; 49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_RETURN sizeof(struct JS_DATA_TYPE) 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_TRUE 1 52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_FALSE 0 53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_X_0 0x01 54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_Y_0 0x02 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_X_1 0x04 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_Y_1 0x08 57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_MAX 2 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_DEF_TIMEOUT 0x1300 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_DEF_CORR 0 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_DEF_TIMELIMIT 10L 61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_SET_CAL 1 62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_GET_CAL 2 63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_SET_TIMEOUT 3 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_GET_TIMEOUT 4 65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_SET_TIMELIMIT 5 66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_GET_TIMELIMIT 6 67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_GET_ALL 7 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define JS_SET_ALL 8 69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct JS_DATA_TYPE { 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 buttons; 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 x; 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 y; 73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct JS_DATA_SAVE_TYPE_32 { 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 JS_TIMEOUT; 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 BUSY; 77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 JS_EXPIRETIME; 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 JS_TIMELIMIT; 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct JS_DATA_TYPE JS_SAVE; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct JS_DATA_TYPE JS_CORR; 81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct JS_DATA_SAVE_TYPE_64 { 83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 JS_TIMEOUT; 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 BUSY; 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s64 JS_EXPIRETIME; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s64 JS_TIMELIMIT; 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct JS_DATA_TYPE JS_SAVE; 88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct JS_DATA_TYPE JS_CORR; 89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 91