15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2009-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This contains constants definitions and other information from the MCAP 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * specification. 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef MCA_DEFS_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_DEFS_H 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** constants 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_MIN_MTU 48 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* standard op codes */ 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_ERROR_RSP 0x00 /* invalid opcode response */ 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_CREATE_REQ 0x01 /* create an MDL, wait for an associated data channel connection */ 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_CREATE_RSP 0x02 /* response to above request */ 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_RECONNECT_REQ 0x03 /* req to prepare to rvc a data channel conn associated with a prev MDL */ 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_RECONNECT_RSP 0x04 /* response to above request */ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_ABORT_REQ 0x05 /* stop waiting for a data channel connection */ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_ABORT_RSP 0x06 /* response to above request */ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_DELETE_REQ 0x07 /* delete an MDL */ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_MDL_DELETE_RSP 0x08 /* response to above request */ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_NUM_STANDARD_OPCODE (1+MCA_OP_MDL_DELETE_RSP) 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* clock synchronization op codes */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_SYNC_CAP_REQ 0x11 /* request sync capabilities & requirements */ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_SYNC_CAP_RSP 0x12 /* indicate completion */ 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_SYNC_SET_REQ 0x13 /* request to set the time-stamp clock */ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_SYNC_SET_RSP 0x14 /* indicate completion */ 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OP_SYNC_INFO_IND 0x15 /* update of the actual time-stamp clock instant from the sync slave */ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FIRST_SYNC_OP MCA_OP_SYNC_CAP_REQ 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_LAST_SYNC_OP MCA_OP_SYNC_INFO_IND 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* response code */ 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_SUCCESS 0x00 /* The corresponding request was received and processed successfully. */ 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_BAD_OPCODE 0x01 /* The Op Code received is not valid (i.e. neither a Standard Op Code nor a Clock Synchronization Protocol Op Code). */ 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_BAD_PARAM 0x02 /* One or more of the values in the received request is invalid. */ 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MCA_RSP_BAD_PARAM shall be used when: 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- The request length is invalid 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- Some of the parameters have invalid values and none of the other defined Response Codes are more appropriate. 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_BAD_MDEP 0x03 /* The MDEP ID referenced does not exist on this device. */ 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_MDEP_BUSY 0x04 /* The requested MDEP currently has as many active MDLs as it can manage simultaneously. */ 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_BAD_MDL 0x05 /* The MDL ID referenced is invalid. */ 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MCA_RSP_BAD_MDL shall be used when: 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- A reserved or invalid value for MDL ID was used. 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- The MDL ID referenced is not available (was never created, has been deleted, or was otherwise lost), 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- The MDL ID referenced in the Abort request is not the same value that was used to initiate the PENDING state 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_MDL_BUSY 0x06 /* The device is temporarily unable to complete the request. This is intended for reasons not related to the physical sensor (e.g. communication resources unavailable). */ 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_BAD_OP 0x07 /* The received request is invalid in the current state. */ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MCA_RSP_BAD_OP is used when 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- Abort request was received while not in the PENDING state. 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- Create, Reconnect, or Delete request was received while in the PENDING state. 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project- A response is received when a request is expected 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_NO_RESOURCE 0x08 /* The device is temporarily unable to complete the request. This is intended for reasons relating to the physical sensor (e.g. hardware fault, low battery), or when processing resources are temporarily committed to other processes. */ 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_ERROR 0x09 /* An internal error other than those listed in this table was encountered while processing the request. */ 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_NO_SUPPORT 0x0A /* The Op Code that was used in this request is not supported. */ 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_CFG_REJ 0x0B /* A configuration required by a MD_CREATE_MDL or MD_RECONNECT_MDL operation has been rejected. */ 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_MAX_MDEP_ID 0x7F /* the valid range for MDEP ID is 1-0x7F */ 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_IS_VALID_MDL_ID(xxx) (((xxx)>0) && ((xxx)<=0xFEFF)) 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_ALL_MDL_ID 0xFFFF 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* MCA_DEFS_H */ 88