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