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