| /* |
| * Copyright (c) 2012, Motorola, Inc. All Rights Reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| * |
| */ |
| |
| #ifndef __M4SENSORHUB_CLIENT_IOCTL_H__ |
| #define __M4SENSORHUB_CLIENT_IOCTL_H__ |
| |
| /** The following define the IOCTL command values via the ioctl macros */ |
| |
| #define M4_SENSOR_IOCTL_BASE 0xA2 |
| #define M4_SENSOR_IOCTL_GET_TEMPRATURE _IOR(M4_SENSOR_IOCTL_BASE, 01, int) |
| #define M4_SENSOR_IOCTL_GET_PRESSURE _IOR(M4_SENSOR_IOCTL_BASE, 02, int) |
| #define M4_SENSOR_IOCTL_GET_GYRO _IOR(M4_SENSOR_IOCTL_BASE, 03, int) |
| #define M4_SENSOR_IOCTL_SET_DELAY _IOW(M4_SENSOR_IOCTL_BASE, 04, int) |
| #define M4_SENSOR_IOCTL_APP_GET_FLAG _IOR(M4_SENSOR_IOCTL_BASE, 05, int) |
| #define M4_SENSOR_IOCTL_APP_SET_FLAG _IOW(M4_SENSOR_IOCTL_BASE, 06, int) |
| #define M4_SENSOR_IOCTL_GET_PEDOMETER _IOR(M4_SENSOR_IOCTL_BASE, 07, int) |
| #define M4_SENSOR_IOCTL_GET_PASSIVE_DATA _IOR(M4_SENSOR_IOCTL_BASE, 10, int) |
| #define M4_SENSOR_IOCTL_GET_SLEEP_DATA _IOR(M4_SENSOR_IOCTL_BASE, 11, int) |
| #define M4_SENSOR_IOCTL_SET_POSIX_TIME _IOW(M4_SENSOR_IOCTL_BASE, 12, int) |
| #define M4_SENSOR_IOCTL_SET_ACTIVE_MODE _IOW(M4_SENSOR_IOCTL_BASE, 13, int) |
| #define M4_SENSOR_IOCTL_SET_PASSIVE_MODE _IOW(M4_SENSOR_IOCTL_BASE, 14, int) |
| #define M4_SENSOR_IOCTL_SLEEP_ANALYSIS _IOW(M4_SENSOR_IOCTL_BASE, 15, int) |
| #define M4_SENSOR_IOCTL_SET_EQUIPMENT_TYPE _IOW(M4_SENSOR_IOCTL_BASE, 16, int) |
| #define M4_SENSOR_IOCTL_SET_MANUAL_CALIB_WALK_SPEED _IOW(M4_SENSOR_IOCTL_BASE, 17, int) |
| #define M4_SENSOR_IOCTL_SET_MANUAL_CALIB_JOG_SPEED _IOW(M4_SENSOR_IOCTL_BASE, 20, int) |
| #define M4_SENSOR_IOCTL_SET_MANUAL_CALIB_RUN_SPEED _IOW(M4_SENSOR_IOCTL_BASE, 21, int) |
| #define M4_SENSOR_IOCTL_SET_MANUAL_CALIB_STATUS _IOW(M4_SENSOR_IOCTL_BASE, 22, int) |
| #define M4_SENSOR_IOCTL_SET_USER_PROFILE _IOW(M4_SENSOR_IOCTL_BASE, 23, int) |
| #define M4_SENSOR_IOCTL_SET_USER_DISTANCE _IOW(M4_SENSOR_IOCTL_BASE, 24, int) |
| #define M4_SENSOR_IOCTL_SET_USER_CALIB_TABLE _IOW(M4_SENSOR_IOCTL_BASE, 25, int) |
| #define M4_SENSOR_IOCTL_GET_MANUAL_CALIB_STATUS _IOR(M4_SENSOR_IOCTL_BASE, 26, int) |
| #define M4_SENSOR_IOCTL_ERASE_CALIB _IOW(M4_SENSOR_IOCTL_BASE, 27, int) |
| #define M4_SENSOR_IOCTL_SET_SCREEN_ON_GESTURE_STATUS _IOW(M4_SENSOR_IOCTL_BASE, 30, int) |
| #define M4_SENSOR_IOCTL_SET_ALTITUDE _IOW(M4_SENSOR_IOCTL_BASE, 31, int) |
| #define M4_SENSOR_IOCTL_GET_FUSION _IOR(M4_SENSOR_IOCTL_BASE, 32, int) |
| #define M4_SENSOR_IOCTL_GET_COMPASS _IOR(M4_SENSOR_IOCTL_BASE, 33, int) |
| #define M4_SENSOR_IOCTL_GET_ACCEL _IOR(M4_SENSOR_IOCTL_BASE, 34, int) |
| #define M4_SENSOR_IOCTL_GYRO_SET_DELAY _IOW(M4_SENSOR_IOCTL_BASE, 35, int) |
| #define M4_SENSOR_IOCTL_COMPASS_SET_DELAY _IOW(M4_SENSOR_IOCTL_BASE, 36, int) |
| #define M4_SENSOR_IOCTL_ACCEL_SET_DELAY _IOW(M4_SENSOR_IOCTL_BASE, 37, int) |
| #define M4_SENSOR_IOCTL_FUSION_SET_DELAY _IOW(M4_SENSOR_IOCTL_BASE, 40, int) |
| #define M4_SENSOR_IOCTL_SET_SCREEN_STATUS _IOW(M4_SENSOR_IOCTL_BASE, 41, int) |
| #define M4_SENSOR_IOCTL_DL_SEND_PACKET _IOW(M4_SENSOR_IOCTL_BASE, 42, int) |
| #define M4_SENSOR_IOCTL_SET_TIMEZONE_OFFSET _IOW(M4_SENSOR_IOCTL_BASE, 43, int) |
| #define M4_SENSOR_IOCTL_LOCK_CLOCKFACE _IOW(M4_SENSOR_IOCTL_BASE, 44, int) |
| #define M4_SENSOR_IOCTL_SET_DAILYSTEP_OFFSET _IOW(M4_SENSOR_IOCTL_BASE, 45, int) |
| |
| #define M4_SENSOR_DL_MAX_FILE_SIZE 16 |
| #define M4_SENSOR_DL_MAX_PACKET_SIZE 2048 |
| |
| enum M4_SENSOR_DL_CMDS { |
| M4_SENSOR_DL_CMD_GET_CHECKSUM, |
| M4_SENSOR_DL_CMD_OPEN_FILE, |
| M4_SENSOR_DL_CMD_WRITE_FILE, |
| M4_SENSOR_DL_CMD_CLOSE_FILE, |
| M4_SENSOR_DL_CMD_DELETE_FILE, |
| }; |
| |
| enum M4_SENSOR_DL_ERROR_CODES { |
| M4_SENSOR_DL_SUCCESS, |
| M4_SENSOR_DL_ERROR_GET_CHECKSUM, |
| M4_SENSOR_DL_ERROR_OPEN_FILE, |
| M4_SENSOR_DL_ERROR_WRITE_FILE, |
| M4_SENSOR_DL_ERROR_CLOSE_FILE, |
| M4_SENSOR_DL_ERROR_DELETE_FILE, |
| M4_SENSOR_DL_ERROR_INVALID_SIZE, |
| /*internal error between M4<==>Kernel*/ |
| M4_SENSOR_DL_ERROR_SEND_CMD = 0x80, |
| M4_SENSOR_DL_ERROR_DATA_CHECKSUM, |
| }; |
| |
| #define M4_MAX_LOG_LEVEL 3 |
| #define get_log_level(loglevel, mask) ((loglevel >> mask) & 0x3) |
| |
| struct m4sh_user_profile { |
| unsigned char gender; |
| unsigned char age; |
| unsigned char height; |
| unsigned char weight; |
| }; |
| |
| struct m4sh_workout_data { |
| int msp_distance; |
| int user_distance; |
| }; |
| |
| struct m4sh_download_packet{ |
| unsigned char command; |
| unsigned char status; |
| unsigned short size; |
| unsigned int checksum; |
| char filename[M4_SENSOR_DL_MAX_FILE_SIZE]; |
| unsigned char buffer[M4_SENSOR_DL_MAX_PACKET_SIZE]; |
| }; |
| |
| enum m4sh_log_level_mask { |
| GEN_MASK_BIT_1, |
| GEN_MASK_BIT_2, |
| TIMER_MASK_BIT_1, |
| TIMER_MASK_BIT_2, |
| ACCEL_MASK_BIT_1, |
| ACCEL_MASK_BIT_2, |
| TMP_MASK_BIT_1, |
| TMP_MASK_BIT_2, |
| BMP_MASK_BIT_1, |
| BMP_MASK_BIT_2, |
| PEDO_MASK_BIT_1, |
| PEDO_MASK_BIT_2, |
| TCMD_MASK_BIT_1, |
| TCMD_MASK_BIT_2, |
| GYRO_MASK_BIT_1, |
| GYRO_MASK_BIT_2, |
| COMPASS_MASK_BIT_1, |
| COMPASS_MASK_BIT_2, |
| FUSION_MASK_BIT_1, |
| FUSION_MASK_BIT_2, |
| METS_MASK_BIT_1, |
| METS_MASK_BIT_2, |
| GESTURE_MASK_BIT_1, |
| GESTURE_MASK_BIT_2, |
| POWER_MASK_BIT_1, |
| POWER_MASK_BIT_2, |
| CORRELATION_MASK_BIT_1, |
| CORRELATION_MASK_BIT_2, |
| GPS_MASK_BIT_1, |
| GPS_MASK_BIT_2, |
| DOWNLOAD_MASK_BIT_1, |
| DOWNLOAD_MASK_BIT_2, |
| AUDIO_MASK_BIT_1, |
| AUDIO_MASK_BIT_2, |
| DISPLAY_MASK_BIT_1, |
| DISPLAY_MASK_BIT_2, |
| WRIST_MASK_BIT_1, |
| WRIST_MASK_BIT_2, |
| }; |
| |
| #endif /* __M4SENSORHUB_CLIENT_IOCTL_H__ */ |